当我尝试检索文件路径时,它会向我显示如下结果:“C:\ fakepath \ _胺.jpeg”,因此服务器中的上传无法解决该问题。
$('input[type=file]').change(function () {
var filePath=$('#file-input').val();
$.ajax({
url : "{{path('upload_file')}}",
type : 'POST',
data: {
filePath : filePath,
method: 'post',
params: {
action: "uploadFile"
}
},
success : function(data, textStatus, jqXHR) {
alert(data);
}
});
});
答案 0 :(得分:2)
你这样做是错的。 您必须创建一个表单对象并通过$ .ajax发送它。 我假设您已经编写了正确的服务器端代码来保存图像。
var f = new FormData();
f.append('img',document.getElementById("file-input").files[0]);
var url= "{{Your URL}}";
$.ajax({
url: url,
type:"post",
data: f,
dataType:"JSON",
processData: false,
contentType: false,
success: function (data, status)
{
console.log(data);
},
error: function (data)
{
if (data.status === 422) {
console.log("upload failed");
} else {
console.log("upload success");
}
});
答案 1 :(得分:-1)
默认情况下,您的文件会上传到临时文件夹。您需要将其移动到实际位置以便像访问php一样访问它:
move_uploaded_file($_FILES["fileToUpload"]["tmp_name"], $target_file)