首页
学习
活动
专区
圈层
工具
发布
社区首页 >问答首页 >警告: getimagesize() [function.getimagesize]:文件名不能为空警告消息?

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

Stack Overflow用户
提问于 2013-04-17 01:58:31
回答 6查看 32.3K关注 0票数 2

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

我使用一个在action上运行以下代码的表单:

代码语言:javascript
复制
$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;
    }

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

代码语言:javascript
复制
<input name="file" type="file" class="photo_file_upload">

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

代码语言:javascript
复制
<button type="submit" name="submit" class="photo_upload">Upload</button>

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

代码语言:javascript
复制
Warning: getimagesize() [function.getimagesize]: Filename cannot be empty in (upload PHP file) on line 10

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

有谁知道这是什么原因吗?

EN

回答 6

Stack Overflow用户

回答已采纳

发布于 2013-04-17 02:06:03

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

使用以下命令:

代码语言:javascript
复制
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;
}

您看到文件&&isset($_’)文件是新的

或者你可以扩展它

代码语言:javascript
复制
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;
}
票数 9
EN

Stack Overflow用户

发布于 2017-10-16 19:21:40

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

代码语言:javascript
复制
upload_max_filesize = 500M
post_max_size = 500M
max_execution_time = 120
票数 3
EN

Stack Overflow用户

发布于 2016-02-26 10:22:34

警告: getimagesize() function.getimagesize:文件名不能为空

验证MAX_SIZE变量,例如为2Mo映像定义该变量:

代码语言:javascript
复制
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>

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

票数 2
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/16043892

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档