【发布时间】:2013-05-15 12:47:24
【问题描述】:
我正在使用 php/html5 并尝试上传文件,但 $_FILES['picture'] 似乎从未包含任何内容。我浏览了很多帖子并寻找常见的修复方法,但它们似乎都不起作用,首先是代码;
表格;
<form enctype="multipart/form-data" action="decodeQR.php" method="post">
<input type="hidden" name="MAX_FILE_SIZE" value="30000000" />
<input type="file" name="picture" id="picture" value="picture" accept="picture/*" capture>
<input type="submit" value="Upload">
</form>
decodeQR.php;
<?php
include 'header.php';
$upload_status = FALSE;
if(isset($_FILES['picture']))
{
echo 'picture set <br>';
}
else
{
echo 'picture not set <br>';
}
if ($_FILES["file"]["error"] > 0)
{
echo "Error: " . $_FILES["file"]["error"] . "<br>";
}
if (isset($_FILES['picture']) && file_exists($_FILES['picture']['tmp_name']))
{
$image = $_FILES['picture']['tmp_name'];
//~ Check if image is an image
if (@getimagesize($image))
{
$upload_status = TRUE;
//~ from here you can use yours image as $_FILES['picture']['name'], for example to copy it
move_uploaded_file($image, realpath(dirname(__FILE__)).'/images/'.$_FILES['picture']['name']);
//~ Also be noticed that the image curently is in OS tmp folder and if you dont copy it, it will be deleted after script execution.
}
}
if ($upload_status)
{
echo 'Image successfully uploaded. <br> <img src="images/'.$_FILES['picture']['name'].'">';
}
else
{
echo 'nope.jpg';
}
?>
输出总是;
图片未设置
不.jpg
这意味着$_Files['picture'] 没有设置,并且文件数组中没有错误。
从上面的代码可以看出,我已经尝试了以下修复;
- 添加了表单编码类型的标记;
enctype="multipart/form-data" - 添加了隐藏的
MAX_FILE_SIZE属性 - 代码中不显示,我尝试在文件标签中添加 size='30000000'
- 我检查了设置和获取文件时值/名称是否相同
- 我还检查了 php.ini 以确保允许 file_upload
我可能会错过什么?
编辑;我已经在我的桌面和移动浏览器上尝试过了。
【问题讨论】:
-
您检查过您的服务器错误日志吗?您在 phpinfo() post_max_size、max_file_uploads、file_uploads 等中的文件处理值是什么
-
使用
var_dump($_FILES)并检查。 -
post_max_size 为 8m,upload_max_filesize 为 2m,max_file_uploads 为 20,file_uploads 开启。现在检查 var_dump($_Files)
-
@YogeshSuthar var_dump($_FILES) 返回 array(0) { },所以它没有被通过..但是为什么...我已经尝试了我的问题中解释的所有事情。
-
您的代码没有问题。我刚刚测试了您的表单,并将一个文件上传到一个脚本,该脚本只是
<?php var_dump($_FILES);,问题必须与您尝试上传的文件、浏览器或服务器配置有关。愚蠢的问题。你上传的文件有多大?不会超过 2mb 吧?
标签: php html forms jquery-mobile