【发布时间】:2016-08-19 00:49:12
【问题描述】:
当我尝试检索文件路径时,它会显示如下结果:“C:\fakepath\amine.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);
}
});
});
【问题讨论】:
-
你是说它实际上是在插入一个名为“fakepath”的文件夹吗?它应该有不同的文件夹名称还是应该不存在?
-
文件输入不会透露文件的完整路径,只是文件 name - 这足以让上传过程正常工作。
-
这看起来不像是通过 ajax 上传文件的正确方法。
-
如果我没记错的话,这就是某些浏览器(谷歌浏览器?)在提示时返回的文件路径,而不是仅仅抛出错误。这是一个明显的安全限制,您不应试图规避它。但这是经典的XY problem:您不需要通过 AJAX 上传文件的文件路径。
-
文件路径与您的服务器完全无关:有趣的是文件 name - 在本例中为
amine.jpeg。
标签: javascript php ajax