【发布时间】:2017-10-21 22:33:16
【问题描述】:
我正在使用带有 L5.5 的 Dropzone,我想为个人资料存储一张图片,为图库存储多张图片。
我把paramName:放到了Dropzone配置中,但是我不能上传Dropzone的两个实例,只有一个。
给我一个错误:http://127.0.0.1/project/public/dropzone/store500(内部服务器错误)
我的看法:
<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>
我的 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);
}
}
【问题讨论】:
-
启用调试:ini_set('display_startup_errors',1); ini_set('display_errors',1);错误报告(E_ALL);并检查您的日志文件是否有任何错误
-
500 server error只是一个通用消息,真正的错误会告诉你到底出了什么问题,将在你的storage/logs/laravel.log和/或你的网络服务器(Apache、nginx)和/或 PHP 日志。真正的错误是什么? -
这是 laravel 的错误:C:\xampp\htdocs\project\vendor\laravel\framework\src\Illuminate\Routing\RouteCollection.php 在这一行:throw new MethodNotAllowedHttpException($others) ; -------- laravel.log 给了我这个:C:\\xampp\\htdocs\\project\\public\\index.php(55): Illuminate\\Foundation\\Http\\Kernel- >句柄(对象(照亮\\Http\\Request))
-
@Leoh 好的,这表明了真正的问题 - 我已经添加了答案,请看一下。
-
我现在正在尝试..我的 chrome 网络开发工具上有这个..消息:“为 foreach() 提供的参数无效”,异常:“ErrorException”,行是:foreach( $files1 as $file1){ $fileName1 = $file1->getClientOriginalName(); $file1->move($dir, $fileName1); }
标签: laravel laravel-5 dropzone.js