
PHP 中的 jQuery AJAX 文件上传
问题: 尽管浏览器显示“[object FormData]”和清空“上传”文件夹server.
解决方案:要使用 jQuery AJAX 成功上传文件,需要一个服务器端脚本来处理上传的文件并将其移动到所需位置。
更新的 jQuery 脚本
以下更新的 jQuery 脚本指向一个名为的服务器端 PHP 脚本"upload.php":
1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 | $( "#upload" ).on( "click" , function () {
var file_data = $( "#sortpicture" ).prop( "files" )[0];
var form_data = new FormData();
form_data.append( "file" , file_data);
$.ajax({
url: 'upload.php' ,
dataType: 'text' ,
cache: false,
contentType: false,
processData: false,
data: form_data,
type: 'post' ,
success: function (php_script_response){
alert(php_script_response);
}
});
});
|
登录后复制
服务器端 PHP 脚本
以下“upload.php”脚本检查上传文件中的错误并将其移动到“uploads”目录:
1 2 3 4 5 6 7 | <?php
if (0 < $_FILES [ 'file' ][ 'error' ]) {
echo 'Error: ' . $_FILES [ 'file' ][ 'error' ] . '<br>' ;
} else {
move_uploaded_file( $_FILES [ 'file' ][ 'tmp_name' ], 'uploads/' . $_FILES [ 'file' ][ 'name' ]);
}
?>
|
登录后复制
其他注意事项
- 确保您已“uploads”目录的正确服务器路径。
- 确保“uploads”目录可写。
- 检查您的 PHP 配置中的“upload_max_filesize”和“post_max_size”以确保您的测试文件不要超过这些限制。
使用服务器端重命名文件脚本
使用 PHP 重命名服务器上的文件:
1 | move_uploaded_file( $_FILES [ 'file' ][ 'tmp_name' ], 'uploads/my_new_filename.whatever' );
|
登录后复制
以上是尽管显示'[object FormData]”,为什么我的 jQuery AJAX 文件上传到 PHP 仍失败?的详细内容。更多信息请关注PHP中文网其他相关文章!