我使用Dropzone和L5.5,我希望为个人资料存储一个图像,为图库存储多个图像。
我将paramName:
置于Dropzone配置中,但我无法上传Dropzone的两个实例,只有一个。
给我一个错误:http://127.0.0.1/project/public/dropzone/store 500(内部服务器错误)
我的观点:
<div class="col-md-12">
<h1>Upload Multiple Images</h1>
{!! Form::open([ 'route' => [ 'dropzone.store' ], 'files' => true, 'enctype' => 'multipart/form-data', 'class' => '', 'id' => '' ]) !!}
<div class="dropzone" id="image-upload1">
<h3>Upload Multiple Image By Click On Box</h3>
</div>
{!! Form::text('name'); !!}
<div class="dropzone" id="image-upload">
<h3>Upload Multiple Image By Click On Box</h3>
</div>
<button type="submit" class="btn btn-success" id="submit-all">OK</button>
{!! Form::close() !!}
</div>
My Dropzone js:
Dropzone.autoDiscover = false;
//>>> IMAGE 1
var myDropzone1 = new Dropzone("div#image-upload1", {
url: "dropzone/store",
paramName: "profile",
autoProcessQueue:false,
uploadMultiple: true,
maxFilesize:5,
maxFiles:1,
acceptedFiles: ".jpeg,.jpg,.png,.gif",
headers: {
'X-CSRF-TOKEN': $('meta[name="csrf-token"]').attr('content')
},
init: function(){
myDropzone1 = this; // closure
var btn1 = document.querySelector("#submit-all");
btn1.addEventListener("click", function(e) {
e.preventDefault();
e.stopPropagation();
//myDropzone1.processQueue(); // Tell Dropzone to process all queued files.
});
}
});
// MULTIPLE THE SAME LIKE ONE
$("#submit-all").click( function(e){
e.preventDefault;
myDropzone1.processQueue();
//myDropzone.processQueue();
//$( "#foo" ).trigger( "click" );
});
在我的控制器上:
public function dropzoneStore(Request $request)
{
$dir = public_path().'/upload/';
$files1 = $request->file('profile');
foreach($files1 as $file1){
$fileName1 = $file1->getClientOriginalName();
$file1->move($dir, $fileName1);
}
// FOR MULTIPLE
$files = $request->file('images');
foreach($files as $file){
$fileName = $file->getClientOriginalName();
$file->move($dir, $fileName);
}
}
答案 0 :(得分:0)
您需要做的是
如果您通过Ajax进行上传
如果您通过POST上传
过去我遇到过类似的问题,但这是一个值得关注的问题。
目前你在同一个表格上有两个Dropzones,但Dropzone创建了我自己的表格。
另外,检查500错误更好,也许会给你一个关于发生了什么的线索。在Web服务器的日志中查看storage/logs/laravel.log
,如果没有任何用处。
答案 1 :(得分:0)
您的评论中的真正错误是:
C:\ xampp \ htdocs \ project \ vendor \ laravel \ framework \ src \ Illumin ate \ Routing \ RouteCol lection.php在这一行:throw new MethodNotAllowedHttpException($ others);
MethodNotAllowedHttpException
表示您没有为您正在制作的请求设置合适的路线。通常这类似于POST到只有GET路由设置的URL,或redirect()
ing - 发出GET - 在成功处理POST到只有POST路由设置的URL之后
另一种常见情况是,如果您在接收POST的方法中进行验证。如果该验证失败,则Laravel will redirect()
返回上一页,并发出GET请求。您需要设置GET路由才能工作。
正确设置POST路由(在评论中描述),它必须是其他案例之一。