将 Dropzone.js 整合到 Laravel 5.2 中
integrate Dropzone.js in Laravel 5.2
在我的 laravel 5.2 项目中,我需要创建一个多文件上传区域。我选择Dropzone.js
现在我的问题是如何将此插件与 laravel 一起使用。
这是我的观点:
<div class="tab-pane" id="tab_2">
<div class="box-body">
<div class="form-group">
<label for="inputEmail3" class="col-sm-2 control-label">Facebook:</label>
<div class="col-sm-10">
<input type="text" name="facebook" class="form-control">
</div>
</div>
<div class="form-group">
<label for="inputEmail3" class="col-sm-2 control-label">Twitter:</label>
<div class="col-sm-10">
<input type="text" name="twitter" class="form-control">
</div>
</div>
<div class="form-group">
<label for="video" class="col-sm-2 control-label">Video:</label>
<div class="col-sm-10">
<input type="text" name="video" class="form-control">
</div>
</div>
<!--File Upload-->
<div class="dropzone" id="dropzoneFileUpload">
</div>
<script type="text/javascript">
var baseUrl = "{{ url('/') }}";
var token = "{{ Session::getToken() }}";
Dropzone.autoDiscover = false;
var myDropzone = new Dropzone("div#dropzoneFileUpload", {
url: baseUrl+"/dropzone/uploadFiles",
params: {
_token: token
}
});
Dropzone.options.myAwesomeDropzone = {
paramName: "file",
maxFilesize: 2, // MB
addRemoveLinks: true,
accept: function(file, done) {
},
};
</script>
我的控制器:
public function store(SpotFormRequest $request) {
$user = Auth::user();
$role = $user->role;
if($role === 'manager'){
$idagent = 1;
$idmanager = $user->id;
}
else{
$idagent=$user->id;
$idmanager=0;
}
$spot = new Spot(array(
'agent_id'=>$idagent,
'manager_id'=>$idmanager,
'name' => $request->get('spotname'),
'address' => $request->get('address'),
'zip' => $request->get('zip'),
'city'=>$request->get('city_id'),
'phone' => $request->get('phone'),
'mobile' => $request->get('mobile'),
));
$spot->save();
return redirect('/administrator/spot-new')->with('status', 'Your spot has been created!');
}
我需要在控制器中集成上传。
在 Laravel 项目中实施 Dropzone 可能有点棘手
这是一个循序渐进的步骤tutorial,我发现它非常有用
本教程涵盖:
- 自动上传图片
- 使用 AJAX 请求
直接从 Dropzone 预览中删除图像
- 上传图片的图片计数器
- 使用
将图像保存为全尺寸和图标尺寸版本
- 用于调整大小和图像编码的图像干预包
- 将图像数据保存到数据库
- 服务器端图像的唯一文件名
在我的 laravel 5.2 项目中,我需要创建一个多文件上传区域。我选择Dropzone.js 现在我的问题是如何将此插件与 laravel 一起使用。
这是我的观点:
<div class="tab-pane" id="tab_2">
<div class="box-body">
<div class="form-group">
<label for="inputEmail3" class="col-sm-2 control-label">Facebook:</label>
<div class="col-sm-10">
<input type="text" name="facebook" class="form-control">
</div>
</div>
<div class="form-group">
<label for="inputEmail3" class="col-sm-2 control-label">Twitter:</label>
<div class="col-sm-10">
<input type="text" name="twitter" class="form-control">
</div>
</div>
<div class="form-group">
<label for="video" class="col-sm-2 control-label">Video:</label>
<div class="col-sm-10">
<input type="text" name="video" class="form-control">
</div>
</div>
<!--File Upload-->
<div class="dropzone" id="dropzoneFileUpload">
</div>
<script type="text/javascript">
var baseUrl = "{{ url('/') }}";
var token = "{{ Session::getToken() }}";
Dropzone.autoDiscover = false;
var myDropzone = new Dropzone("div#dropzoneFileUpload", {
url: baseUrl+"/dropzone/uploadFiles",
params: {
_token: token
}
});
Dropzone.options.myAwesomeDropzone = {
paramName: "file",
maxFilesize: 2, // MB
addRemoveLinks: true,
accept: function(file, done) {
},
};
</script>
我的控制器:
public function store(SpotFormRequest $request) {
$user = Auth::user();
$role = $user->role;
if($role === 'manager'){
$idagent = 1;
$idmanager = $user->id;
}
else{
$idagent=$user->id;
$idmanager=0;
}
$spot = new Spot(array(
'agent_id'=>$idagent,
'manager_id'=>$idmanager,
'name' => $request->get('spotname'),
'address' => $request->get('address'),
'zip' => $request->get('zip'),
'city'=>$request->get('city_id'),
'phone' => $request->get('phone'),
'mobile' => $request->get('mobile'),
));
$spot->save();
return redirect('/administrator/spot-new')->with('status', 'Your spot has been created!');
}
我需要在控制器中集成上传。
在 Laravel 项目中实施 Dropzone 可能有点棘手
这是一个循序渐进的步骤tutorial,我发现它非常有用
本教程涵盖:
- 自动上传图片
- 使用 AJAX 请求 直接从 Dropzone 预览中删除图像
- 上传图片的图片计数器
- 使用 将图像保存为全尺寸和图标尺寸版本
- 用于调整大小和图像编码的图像干预包
- 将图像数据保存到数据库
- 服务器端图像的唯一文件名