Javascript 文件赢得';不能使用Ajax PHP移动到其他位置
我试图上传一个文件,并将其移动到一个文件夹按钮点击使用Ajax和PHP。如果成功,则返回true,但上载的文件不会移动到目标文件夹。下面是Ajax上传的一个片段Javascript 文件赢得';不能使用Ajax PHP移动到其他位置,javascript,php,jquery,ajax,Javascript,Php,Jquery,Ajax,我试图上传一个文件,并将其移动到一个文件夹按钮点击使用Ajax和PHP。如果成功,则返回true,但上载的文件不会移动到目标文件夹。下面是Ajax上传的一个片段 btnsubmit = $(".submit"); //the function for handling button click btnsubmit.click(function(){ var file_data = $('#uploaded_img').prop('files')[0];
btnsubmit = $(".submit");
//the function for handling button click
btnsubmit.click(function(){
var file_data = $('#uploaded_img').prop('files')[0];
var form_data = new FormData();
form_data.append('file', file_data);
$.ajax({
url: 'upload_img_custom.php',
cache: false,
contentType: false,
processData: false,
data: form_data,
type: 'POST',
success: function(php_script_response){
alert(php_script_response);
}
});
});
这是PHP文件
<?php
$upload_directory = "../uploads/Customized/";
if (isset($_FILES['uploaded_img']))
{
$uploadedFileName=$_FILES['uploaded_img']['name'];
$targetPath=time().$uploadedFileName; //time is concatenated to make filenames unique
if($uploadedFileName != '')
{
$targetPath=time().$uploadedFileName;
move_uploaded_file($uploadedFileName, $upload_directory."".$targetPath);
}
}
header('Location: customize.php?upload=success');
?>
HTML(仅是重要部分)
形象
//用于显示上载图像的div
在蛋糕顶部选择您想要的:
添加到购物车
我已经检查了上传的限制。我试图上传的文件只有170KB。我设定的极限是20米。
“自定义”文件夹位于xampp htdocs中此项目的另一个文件夹中。由于您将文件命名为变量“file”(JS),因此在PHP代码中也应使用“file”:
if (isset($_FILES['file']))
及
或者更改JS部分:
form_data.append('uploaded_img', file_data);
您需要移动临时文件名,而不是原始文件名:
move_uploaded_file($_FILES['file']['tmp_name'], $upload_directory . $targetPath);
您是否检查了请求参数?所有值都将发送到服务器。。还有你应该放新文件的文件夹的权限?@Vincent我没有。如何做到这一点?您可以从浏览器控制台检查是否所有表单值都被发送到服务器端,或者只需执行
print\r($\u文件);退出()
在PHP代码中,查看是否有任何错误消息。我认为在AJAX答案中使用header()
不是一个好主意,因为您的JS代码正在等待一些字符串响应。此外,move\u uploaded\u file()
中的”
可能是一个“/”
@BurninLeo,我会试试你的建议。顺便说一句,我正试图将目标和文件夹连接在一起,这就是我使用“”的原因。谢谢!天哪,我就因为这个浪费了这么多时间。这是因为我从复制函数中复制了该语法!
form_data.append('uploaded_img', file_data);
move_uploaded_file($_FILES['file']['tmp_name'], $upload_directory . $targetPath);