警告:getimagesize()[function.getimagesize]:文件名不能为空警告消息?

时间:2013-04-16 17:58:31

标签: php warnings getimagesize

直到最近,我一直在使用一些PHP将照片上传到网站。但突然间它开始触发各种错误信息。

我使用on action的表单运行以下代码:

$uploaddir = "../../user_content/photo/";
$allowed_ext = array("jpeg", "jpg", "gif", "png");

    if(isset($_POST["submit"])) {
        $file_temp = $_FILES['file']['tmp_name'];   
        $info = getimagesize($file_temp);
    } else {
        print "File not sent to server succesfully!";
        exit;
    }

表单的文件上载部分包含以下元素:

<input name="file" type="file" class="photo_file_upload">

上传提交按钮具有以下属性:

<button type="submit" name="submit" class="photo_upload">Upload</button>

但每当我运行此命令时,我总会收到以下警告:

Warning: getimagesize() [function.getimagesize]: Filename cannot be empty in (upload PHP file) on line 10

(第10行是这部分:$ info = getimagesize($ file_temp);)

任何人都对这是什么原因有任何想法?

6 个答案:

答案 0 :(得分:6)

您检查了表单是否已提交,但未检查该文件是否已发送。在某些情况下,可以提交表单,但不会发送文件(即文件大小大于配置中的文件大小限制)。

使用此:

if(isset($_POST["submit"]) && isset($_FILES['file'])) {
    $file_temp = $_FILES['file']['tmp_name'];   
    $info = getimagesize($file_temp);
} else {
    print "File not sent to server succesfully!";
    exit;
}

你看&amp;&amp; isset($ _ FILES ['file'])是新的

或者你可以扩展它

if(isset($_POST["submit"]) && isset($_FILES['file'])) {
    $file_temp = $_FILES['file']['tmp_name'];   
    $info = getimagesize($file_temp);
} 
elseif(isset($_POST["submit"]) && !isset($_FILES['file'])) {
    print "Form was submitted but file wasn't send";
    exit;
}
else {
    print "Form wasn't submitted!";
    exit;
}

答案 1 :(得分:1)

警告:getimagesize()[function.getimagesize]:

中的文件名不能为空

验证MAX_SIZE变量, 示例为2Mo图像定义它:

&#13;
&#13;
define('MAX_SIZE', 2000000);
<form enctype="multipart/form-data" method="post" action="upload.php">
<input type="hidden" name="MAX_FILE_SIZE" value="<?php echo MAX_SIZE; ?>" /> 
<input name="fichier" type="file" id="fichier_a_uploader" /> <br>
<input type="submit" name="submit" value="Uploader" /> 
</form>
&#13;
&#13;
&#13;

您还可以验证PHP将接受的POST数据的最大大小以及PHP.ini中上传文件的最大允许大小: post_max_size =? upload_max_filesize =?

答案 2 :(得分:1)

在php.ini文件中更改这些参数; (目前它仅允许2Mb大小  上传和发布)。有时这是造成这些错误的原因。

upload_max_filesize = 500M
post_max_size = 500M
max_execution_time = 120

答案 3 :(得分:0)

您应该将表单enctype更改为“multipart / form-data”

<form method="post" enctype="multipart/form-data">
     ....
</form>

答案 4 :(得分:0)

升级'upload-max-filesize'后,重新启动wamp或xampp的所有服务!它会对的!

答案 5 :(得分:-2)

注意:未定义的索引:第38行的D:\ xampp \ htdocs \ public_html \ php \ form_php \ application \ process_application.php中的fileToUpload

注意:未定义的索引:第43行的D:\ xampp \ htdocs \ public_html \ php \ form_php \ application \ process_application.php中的fileToUpload

警告:getimagesize():第43行的D:\ xampp \ htdocs \ public_html \ php \ form_php \ application \ process_application.php中的文件名不能为空 文件不是图像。存档,文件已存在。 注意:未定义的索引:第58行的D:\ xampp \ htdocs \ public_html \ php \ form_php \ application \ process_application.php中的fileToUpload 对不起,只有JPG,JPEG,PNG&amp;允许使用GIF文件。因此,您的文件未上传。

如果你得到像这样的错误,你应该检查你是否已将表格enctype添加到&#34; multipart / form-data&#34;

<form method="post" enctype="multipart/form-data">
     ....
</form>

开始使用时要抓住我很多。