我使用filedrop.js
在我的应用中创建文件存储库结构。上面提到的JSFIDDLE包含了这个小模块的所有Javascript / jQuery / HTML和CSS代码。虽然客户端上的所有内容似乎都正常运行(文件可以是DnD' d,进度条正常运行,控制台显示正确的事件触发器),但服务器端的结果始终为空$_FILES
变量。我的PHP( ajax.receiveFile.php )如下:
var_dump($_FILES);
ob_start();
$callback = &$_REQUEST['fd-callback'];
$job_id = &$_REQUEST['job_id'];
$subdir = &$_REQUEST['subdir'];
$j = loadJob($job_id);
$save_path = "D:\\JobFiles\\" . $j->gOrderNumber() . "\\" . $subdir . "\\";
if ( ($_FILES['fd-file']['size'] > 0) && is_uploaded_file($_FILES['fd-file']['tmp_name']) ) {
$name = $_FILES['fd-file']['name'];
if (move_uploaded_file($_FILES['fd-file']['tmp_name'], $save_path.$name)) {
$j->addAttachment($subdir,$name);
echo 'true';
} else {
echo 'false';
}
}
ob_end_flush();
FileDrop.js
似乎正在做它应该做的事情,如下所示:
我在{"文件"的多种输入类型上使用相同的元素name
阅读here on SO可能会导致错误,但我不确定这是否是这种情况。我对TEMP
和TARGET
上传文件夹的权限进行了双重和三重检查,我已确认所有PHP变量都是根据需要通过目视检查和PHPINFO()
设置的。 IIS7上的服务器配置是PHP 5.4。
如果有人想知道还有什么想法,请提供帮助。谢谢!
答案 0 :(得分:1)
这对我有用:
file_put_contents('uploads/person/7.jpeg', fopen('php://input', 'r'));