我的代码
我有这个多部分形式:
<form action="upload.php" method="post" enctype="multipart/form-data">
<label for="file"><span>Select:</span></label>
<input type="file" name="file" id="file">
<br>
Password: <input type="password" name="password"><br>
<input type="submit" name="submit" value="Upload">
</form>
指向这个文件:
<?php
$allowedExts = array("mp4", "avi","mpeg","wmv","swf","3gp","AVI");
$extension = pathinfo($_FILES['file']['name'], PATHINFO_EXTENSION);
if (!in_array($extension, $allowedExts) || $_FILES['file']['error']>0 || file_exists(date("YmdHis").$_FILES["file"]["name"]))
{
echo "Error [code: ".$_FILES['file']['error']."]";
} else {
move_uploaded_file($_FILES["file"]["tmp_name"],
date("YmdHis").$_FILES["file"]["name"]);
echo 'file uploaded';
}
?>
它应该做什么
上传视频文件
什么不工作
我尝试上传一个大约300kb的。avi视频:它被上传了,但是显示错误信息" error [code:]"
error_reporting(E_ALL);
结果
注意:未定义的索引:文件在upload.php的第5行
注意:未定义的索引:file in upload.php在第8行
var_dump($_POST,$_FILES);
的结果(password字段为空)
array(0) { } array(0) { }
"<pre>"; print_r($_FILES);
结果
Array ( )
Where I try code
- 本地服务器运行easyPHP, php版本5.5.8 共享服务器,php版本5.3.10
我的问题
如何正确显示成功信息并解决问题?
我已经在PHP 5.3.18上运行了您的代码。windows XP。假设满足上传限制。我能找到的唯一问题是,在移动文件时,您从"目标文件名"中错过了"目标"目录。
测试样例代码:
<?php // http://stackoverflow.com/questions/25115575/file-uploader-uploading-files-but-displaying-error?noredirect=1#comment39103445_25115575
$destDir = 'P:/temp/';
$allowedExts = array("mp4", "avi","mpeg","wmv","swf","3gp","avi");
$extension = pathinfo($_FILES['file']['name'], PATHINFO_EXTENSION);
if (!in_array($extension, $allowedExts) || $_FILES['file']['error']>0 || file_exists(date("YmdHis").$_FILES["file"]["name"]))
{
echo "Error [code: ".$_FILES['file']['error']."]";
} else {
$newFilename = $destDir . date("YmdHis").$_FILES["file"]["name"];
move_uploaded_file($_FILES["file"]["tmp_name"],
$newFilename);
echo 'file uploaded : ', $newFilename;
}
由于文件大小的原因。-
; Maximum allowed size for uploaded files.
upload_max_filesize = allowed max size
; Must be greater than or equal to upload_max_filesize
post_max_size = allowed max size
- PHP修改最大上传文件大小