我想知道我是否可以得到一些建议。
我尝试使用jquery上传文件,同时让用户保持在同一页面上。
无论我尝试什么都不行。我想知道是否有人可以看看并告诉我哪里出错了。
我的HTML
<form id="import" enctype="multipart/form-data" action="/ajax/postimport" method="POST">
<div class="form-group">
<input type="file" name="filename" id="filename" />
</div>
<button type="button" id="importSave">Import</button>
</form>
这是我的jquery
$("#importSave").click(function()
{
$.ajax({
url: '/ajax/postimport',
type: 'POST',
dataType: 'json',
contentType: false,
processData: false,
data: {file: $(#filename).val()},
success: function(data)
{
alert(data.result)
},
error: function(textStatus, errorThrown)
{
}
});
});
然后是我的PHP,即Laravel 4
if (Input::hasFile('filename')) {
$file = Input::file('filename');
$destPath = public_path() . '/uploads/';
$filename = str_random(10) . '_' . $file->getClientOriginalName();
$uploadSuccess = $file->move($destPath, $filename);
}
答案 0 :(得分:0)
仅使用jQuery ajax函数无法上传文件。您需要使用FormData对象来执行此操作。 Formdata的问题在于它是not supported in all browsers。如果你想使用它,你总能找到很多教程,如this one。
答案 1 :(得分:0)
不可能这样做。你只是用一个字段文件发布ajax请求:$(#filename).val()。
所以你需要使用ajax上传库。 有几种选择。但我最喜欢的是