【问题标题】:error uploading file using php使用php上传文件时出错
【发布时间】:2014-06-13 07:29:54
【问题描述】:

我的上传文件功能有问题。我正在关注this 网站来创建上传表单以上传文本文件,我只是对其进行了一些修改。代码如下:

上传表单.php:

//the jquery script is still the same with the website
.....
echo "
    <form action='processupload.php' method='post' enctype='multipart/form-data' id=MyUploadForm>
    <input name='FileInput' id='FileInput' type='file' />
    <input type='submit'  id='submit-btn' value='Upload' />
    <img src='images/ajax-loader.gif' id='loading-img' style='display:none;' alt='Please Wait'/>
    </form>
    <div id='progressbox' ><div id='progressbar'></div ><div id='statustxt'>0%</div></div>
    <div id='output'></div>
  ";

processupload.php:

<?php

if(isset($_FILES["FileInput"]) && $_FILES["FileInput"]["error"]== UPLOAD_ERR_OK)
{
############ Edit settings ##############
//$UploadDirectory  = '/impfile'; //specify upload directory ends with / (slash)
##########################################


//check if this is an ajax request
if (!isset($_SERVER['HTTP_X_REQUESTED_WITH'])){
    die();
}


//Is file size is less than allowed size.
if ($_FILES["FileInput"]["size"] > 5242880) {
    die("File size is too big!");
}

//allowed file type Server side check
switch(strtolower($_FILES['FileInput']['type']))
    {
        case 'text/plain':
            break;
        default:
            die('Unsupported File!'); //output error
}

$File_Name          = $_FILES['FileInput']['name'];

if(move_uploaded_file($_FILES['FileInput']['tmp_name'], "/impfile/".$File_Name ))
{
    die('Success! File Uploaded.');
}else{
    die('error uploading File!');
}

}
else
{
die('Something wrong with upload! Is "upload_max_filesize" set correctly?');
}

问题是反馈总是显示错误

die('上传文件出错!');

我认为问题不在于代码,因为我无法在 phpinfo 显示给我的同一路径中找到 php.ini。我已经将文件夹(impfile)设置为可写。

谁能告诉我我在代码中哪里做错了?或者也许是 php.ini?如果 php.ini 是问题,我该如何添加 php.ini?或者也许还有别的什么?

我们将不胜感激。谢谢。

【问题讨论】:

  • 你给这个文件夹什么权限?
  • @npfedwards 顺便说一句,路径必须是真实路径,因为路径是..他可能试图在真实路径 /impfile/ 上移动文件而不是相对文件,我想他没有不想要这个..
  • @npfedwards 我正在使用 filezilla,我将 777 作为值。有错吗?
  • @GotchaRob 在与 processupload.php 相同的文件夹中有一个文件夹名称“impfile”
  • 您在此处提问之前是否尝试过遵循更多网站关于如何上传文件的建议?我发现许多网站都有虚假/过时/服务器特定信息,并且许多网站的混合搭配可以提供最佳结果,尤其是了解底层技术

标签: php jquery ajax


【解决方案1】:

尝试写impfile/ 不带第一个斜线。如果脚本或目录放在域的非根目录中,这可能会有所帮助。

尝试使用is_uploaded_file($_FILES['FileInput']['tmp_name']) 或/和$_FILES['FileInput']['size']&gt;0 条件进行额外检查。

【讨论】:

  • 我多么愚蠢!当然,它不是非根目录。非常感谢CnapoB
猜你喜欢
  • 2012-02-17
  • 2016-04-25
  • 2017-09-30
  • 1970-01-01
  • 1970-01-01
  • 2016-04-19
  • 2012-02-04
  • 2012-01-05
  • 1970-01-01
相关资源
最近更新 更多