文件未上传到php
Posted
技术标签:
【中文标题】文件未上传到php【英文标题】:file not being uploaded to php 【发布时间】:2016-03-28 07:10:58 【问题描述】:我正在尝试将文件上传到 wamp 服务器,is_upload_file 对于超过 10mb 的文件返回 false。对于较小的文件,一切正常。
HTML
<button type = "button" id = "uploadbutton">Click</button>
<form id = "fileupload">
<input type="file" name = "uploadfile" id = "uploadfile" style="position: fixed; top: -100em; display:none">
</form>
js
var uploadbutton = document.getElementById("uploadbutton");
var uploadFileInput = document.getElementById("uploadfile");
uploadbutton.onclick = function()
uploadFileInput.click();
;
uploadFileInput.onchange = function()
onSubmitFile();
;
function onSubmitFile()
console.log("onsubmitform");
var fd = new FormData(document.getElementById("fileupload"))
$.ajax(
url: "uploadfile.php",
type: "POST",
data: fd,
enctype: 'multipart/form-data',
processData: false,
contentType: false
).done(function( data )
alert(data);
);
PHP
if (is_uploaded_file($_FILES["uploadfile"]["tmp_name"]))
$name = $_FILES["uploadfile"]["name"];
move_uploaded_file($_FILES["uploadfile"]["tmp_name"], "C:\\$name");
echo $_FILES["uploadfile"]["name"];
echo "File uploaded";
else
echo "File not uploaded";
print_r($_FILES);
print_r($_FILES)
在is_uploaded_file
失败时打印一个空数组。
在php.ini
upload_max_filesize 64M post_max_size 20M 最大输入时间 300 max_execution_time 300
【问题讨论】:
请参考:sitepoint.com/upload-large-files-in-php 另请注意display : none
在移动设备中可能会给您带来麻烦。如果要隐藏它,请将宽度和高度设置为0px
@AmitRajput, is_uploaded_file — Tells whether the file was uploaded via HTTP POST
@rahul,如果关注点是IT DOES NOT WORK
会很有帮助,但在这种情况下,它仅在文件很大时才有效。
你在使用 Wampserver 吗?
(左键单击)wampmanager 图标 -> PHP -> php.ini 这是您访问它的方式吗?还要检查phpinfo()
【参考方案1】:
请在 php.ini 文件中更新以下变量设置然后尝试。
set_time_limit(0);
ini_set('post_max_size', '50M');
ini_set('upload_max_filesize', '50M');
谢谢
【讨论】:
50 MB 数据至少需要 15 分钟才能上传。最大执行时间呢? 您可以根据自己的要求更新大小限制。 我说的是max_execution_time
但请注意什么是1GB 大的文件?上传需要多长时间? 分块文件上传是在这种情况下要走的路..
@VinodPatidar 我用我的 php.ini 值更新了我的帖子,它们似乎是我上传的文件
是的,亲爱的,如果您的文件大于 1 GB 等,您应该使用分块文件上传。【参考方案2】:
请在 php.ini 文件中更新以下变量设置,然后尝试或在 ini 文件中进行更改并重新启动服务器
ini_set('post_max_size', '50M');
ini_set('upload_max_filesize', '50M');
【讨论】:
【参考方案3】:更新以下变量设置然后尝试..
ini_set('post_max_size', '50M');
ini_set('upload_max_filesize', '50M');
ini_set('max_execution_time', 1200); // 1200 seconds i.e. 20 minutes
【讨论】:
【参考方案4】:原来我编辑了错误的 php.ini。 我在 Apache 文件夹中编辑了 ini,一切正常。
【讨论】:
【参考方案5】:您的表单应如下所示:
<form action="formprocess.php" id='fileupload' method="post" enctype="multipart/form-data">
【讨论】:
以上是关于文件未上传到php的主要内容,如果未能解决你的问题,请参考以下文章