PHP - 保存使用AJAX上传的图像

时间:2013-07-05 04:16:11

标签: php ajax file-upload

考虑到这几个小时的研究和思考,但我没有得到任何地方。

我设法使用FormData对象通过AJAX上传图像文件。当文件到达php代码时,我可以使用以下方式访问其'name''type'等信息:

$_FILES['newFile']['name'];
$_FILES['newFile']['type'];

依此类推,这意味着该文件必须按预期上传,我似乎无法将其保存到文件中。

我试过了:

$file = file_get_contents($_FILES["newFile"]['tmp_name']);
imagejpeg($file, '/img/uploads/' . $_FILES["newFile"]['name']);

但是然后imagejpeg给了我错误“Expect paramater1 to resource,string given。” 所以我试过了:

$file = imagecreatefromstring(file_get_contents($_FILES["newFile"]['tmp_name']));
imagejpeg($file, '/img/uploads/' . $_FILES["newFile"]['name']);

我现在收到错误:/"imagejpeg('/img/uploads/image.jpg'): Failed to open stream. No such file or directory."

有人可以解释我是如何将数组从阵列中获取到磁盘上的文件的吗?

3 个答案:

答案 0 :(得分:1)

您必须使用move_uploaded_file函数,如下所示:

move_uploaded_file($_FILES["uploaded_file"]["tmp_name"], $pathfilename)

答案 1 :(得分:0)

使用php函数move_uploaded_file(“$ _ FILES ['newFile'] ['tmp_name']”,“Location_where_you_want_to_save”);

答案 2 :(得分:0)

想出来!显然“/ img / uploads /”是个问题。 PHP无法将正斜杠识别为根目录!我的错!

move_uploaded_file($_FILES["newFile"]['tmp_name'], $_SERVER['DOCUMENT_ROOT'] . '/img/uploads/' . $_FILES["newFile"]['name']);

在新文件路径完美运行之前使用$ _SERVER ['DOCUMENT_ROOT']。