我正在使用 Laravel 上传文件,并使用 AJAX 请求来创建进度条。以下是表单的操作路由,指向控制器:
<form action="{{ URL::route('upload-file-form-post') }}" method="POST" enctype="multipart/form-data">
.
.
</form>
ajax:
function _(el) {
return document.getElementById(el);
}
function uploadfile() {
var file = _("file").files[0];
// dev
alert(file.name+" | "+file.size+ " | "+" | "+file.type);
var formdata = new FormData();
formdata.append("file", file);
var ajax = new XMLHttpRequest();
ajax.upload.addEventListener("progress", progressHandler, false);
ajax.addEventListener("load", completeHandler, false);
ajax.open("POST", "here_is_where_the_url_needs_to_go");
ajax.send(formdata);
}
function progressHandler(event) {
_("loaded_n_total").innerHTML = "Uploaded " + event.loaded + "bytes of "+ event.total;
var percent = (event.loaded / event.total) * 100;
_("progressBar").value = Math.round(percent);
_("status").innerHTML = Math.round(percent)+"% uploaded... please wait";
}
function completeHandler(event) {
_("status").innerHTML = event.target.responseText;
_("progressBar").value = 0;
}
有没有办法将此代码 {{ URL::route('upload-file-form-post') }}
发送到 ajax 请求中?
在我的路由文件中,以上内容被引用为:
Route::post('/asset/upload-file', array(
'as' => 'upload-file-form-post',
'uses' => 'AssetController@postUploadCreate'
));
<script>
标签内部)吗?还是在事件中触发的?比如表单被提交?这将使得获取action
更容易。 - Ianonclick="uploadfile()"
触发。 - cchurl/route
吗?加载这个页面的是哪个view
? - The Alphaonclick
事件绑定在哪个元素上? - Rahil Wazir<input type="submit" value="Upload file" onclick="uploadfile()">
。加载此页面的视图?我不确定你问我的是什么,它是一个扩展主要 Blade 布局的视图。 - cch