|
@@ -13,6 +13,7 @@
|
|
namespace App\Services\Base;
|
|
namespace App\Services\Base;
|
|
|
|
|
|
use App\Models\BaseAttachmentModel;
|
|
use App\Models\BaseAttachmentModel;
|
|
|
|
+use App\Services\OSS;
|
|
use Response;
|
|
use Response;
|
|
use App\Models\BaseSettingsModel;
|
|
use App\Models\BaseSettingsModel;
|
|
use Image;
|
|
use Image;
|
|
@@ -24,140 +25,10 @@ class Attachment
|
|
if( !$this->_model ) $this->_model = new BaseAttachmentModel();
|
|
if( !$this->_model ) $this->_model = new BaseAttachmentModel();
|
|
}
|
|
}
|
|
|
|
|
|
- public function aliUpload(){
|
|
|
|
-
|
|
|
|
- }
|
|
|
|
-
|
|
|
|
- public function specialUpload(){
|
|
|
|
-
|
|
|
|
- }
|
|
|
|
-
|
|
|
|
-
|
|
|
|
- public function _uploadfiles(){
|
|
|
|
-
|
|
|
|
- }
|
|
|
|
-
|
|
|
|
-
|
|
|
|
- public function _jsonMessage($status,$ret){
|
|
|
|
- $ret['code'] = $status;
|
|
|
|
- return $ret;
|
|
|
|
- }
|
|
|
|
-// /**
|
|
|
|
-// * 上传到本地服务器
|
|
|
|
-// * @param $field
|
|
|
|
-// * @param $request
|
|
|
|
-// */
|
|
|
|
-// public function localUpload($field = '', $request = array())
|
|
|
|
-// {
|
|
|
|
-// $uploadfiles = $this->_uploadfiles($field);
|
|
|
|
-// if(!$uploadfiles){
|
|
|
|
-// return $this->_jsonMessage(FAILURE_CODE, $request['elementid'], ['message' => '没有文件被上传']);
|
|
|
|
-// }
|
|
|
|
-//
|
|
|
|
-// //文件夹路径
|
|
|
|
-// $folder = isset($request['folder']) ? $request['folder'] : 'common';
|
|
|
|
-//
|
|
|
|
-// //上传的文件名是否MD5
|
|
|
|
-// $is_md5 = isset($request['is_md5']) ? $request['is_md5'] : 1;
|
|
|
|
-// if($is_md5){
|
|
|
|
-// $fileurl = $folder . '/' . md5_file($uploadfiles[0]['tmp_name']);
|
|
|
|
-// }else{
|
|
|
|
-// $fileName = basename($uploadfiles[0]['name'], "." . substr(strrchr($uploadfiles[0]['name'], '.'), 1));
|
|
|
|
-// $fileurl = $folder . '/' . $fileName;
|
|
|
|
-// }
|
|
|
|
-//
|
|
|
|
-// $filePath = public_path() . DIRECTORY_SEPARATOR . $fileurl;
|
|
|
|
-// $dirPath = public_path() . DIRECTORY_SEPARATOR .$folder;
|
|
|
|
-//
|
|
|
|
-// //创建目录
|
|
|
|
-// if(!is_dir($dirPath)){
|
|
|
|
-// @mkdir($dirPath, 0755, true)
|
|
|
|
-//// $this->_dirUtil->dirCreate($dirPath);
|
|
|
|
-// }
|
|
|
|
-// /*if(!file_exists($filePath)){
|
|
|
|
-// $this->_dirUtil->dirCreate($filePath);
|
|
|
|
-// }*/
|
|
|
|
-//
|
|
|
|
-// //获取文件后缀名
|
|
|
|
-// $fileext = strtolower(trim(substr(strrchr($uploadfiles[0]['name'], '.'), 1, 10)));
|
|
|
|
-//
|
|
|
|
-// //判断是否需要解包
|
|
|
|
-// $is_extract = isset($request['is_extract']) ? $request['is_extract'] : 0;
|
|
|
|
-// if($is_extract && $fileext == 'zip'){ //ZIP解压
|
|
|
|
-//
|
|
|
|
-//// $message = $this->_zipTool($uploadfiles[0]['tmp_name'], $filePath);
|
|
|
|
-//
|
|
|
|
-// }elseif($is_extract && $fileext == 'rar'){ //RAR解压
|
|
|
|
-//
|
|
|
|
-// if(!get_extension_funcs('rar')){
|
|
|
|
-// return $this->_jsonMessage(500, $request['elementid'], ['message' => '没有发现RAR扩展库']);
|
|
|
|
-// }else{
|
|
|
|
-//// $message = $this->_rarTool($uploadfiles[0]['tmp_name'], $filePath);
|
|
|
|
-// }
|
|
|
|
-//
|
|
|
|
-// }else{
|
|
|
|
-//
|
|
|
|
-// $fileurl = $filePath . '.' . $fileext;
|
|
|
|
-// if(move_uploaded_file($uploadfiles[0]['tmp_name'], $fileurl)){
|
|
|
|
-// $fileurl = trim(str_replace(public_path(), '', $fileurl), '\\');
|
|
|
|
-// return $this->_jsonMessage(SUCESS_CODE, $request['elementid'], ['message' => '文件上传成功', 'fileurl' => $fileurl]);
|
|
|
|
-// }else{
|
|
|
|
-// return $this->_jsonMessage(FAILURE_CODE, $request['elementid'], ['message' => '文件上传成功', 'fileurl' => '']);
|
|
|
|
-// }
|
|
|
|
-//
|
|
|
|
-// }
|
|
|
|
-// $attachment = new BaseAttachmentModel();
|
|
|
|
-// $attachment->name = $clientName;
|
|
|
|
-// $attachment->md5 = $md5;
|
|
|
|
-// $attachment->path = $real_path;
|
|
|
|
-// $attachment->url = $url_path;
|
|
|
|
-// $attachment->size = $fileSize;
|
|
|
|
-// $attachment->file_type = $fileMimeType;
|
|
|
|
-// if ($attachment->save()) {
|
|
|
|
-// $result = 'Foundation/Attachment/download/?md5='.$md5;
|
|
|
|
-// } else {
|
|
|
|
-// @unlink($real_path);
|
|
|
|
-// $result= ErrorCode::ATTACHMENT_SAVE_FAILED;
|
|
|
|
-// }
|
|
|
|
-// if($message['code'] == 200){
|
|
|
|
-// //修改文件夹为只读属性
|
|
|
|
-// //chmod($filePath, 0444);
|
|
|
|
-// }else{
|
|
|
|
-// if(file_exists($filePath)){
|
|
|
|
-// rmdir($filePath);
|
|
|
|
-// }
|
|
|
|
-// }
|
|
|
|
-// return $this->_jsonMessage($message['code'], $request['elementid'], ['message' => $message['message'], 'fileurl' => $fileurl,'name'=>basename($uploadfiles[0]['name'], '.' . $fileext)]);
|
|
|
|
-// }
|
|
|
|
-
|
|
|
|
- /**
|
|
|
|
- * 上传附件
|
|
|
|
- *
|
|
|
|
- * @param string|array $field 文件key
|
|
|
|
- * @param Request $request laravel's http request
|
|
|
|
- * @param string $tag 文件tag
|
|
|
|
- * @param int $size 文件size限制,默认2M
|
|
|
|
- * @param array $mimeType 文件mime类型限制,默认不限
|
|
|
|
- * @return array|string|int 返回:md5字串|ErrorCode或[md5字串|ErrorCode]
|
|
|
|
- */
|
|
|
|
-
|
|
|
|
-
|
|
|
|
- public function localUpload($field, $request, $tag = 'files', $size = 10 * 1024 * 1024, array $mimeType = ['image/jpeg', 'image/png', 'image/gif','video/mp4','video/quicktime','text/plain'])
|
|
|
|
- {
|
|
|
|
-
|
|
|
|
- $tag = $request['folder'];
|
|
|
|
|
|
+ public function aliUpload($field, $request, $tag = 'files', $size = 1 * 1024 * 1024, array $mimeType = ['image/jpeg', 'image/png', 'image/gif','video/mp4','video/quicktime']){
|
|
$class = isset($request['class']) ? $request['class'] : '未分类';
|
|
$class = isset($request['class']) ? $request['class'] : '未分类';
|
|
$sizex = isset($request['sizex']) ? $request['sizex'] : 0;
|
|
$sizex = isset($request['sizex']) ? $request['sizex'] : 0;
|
|
$sizey = isset($request['sizey']) ? $request['sizey'] : 0;
|
|
$sizey = isset($request['sizey']) ? $request['sizey'] : 0;
|
|
- $rel_path = $tag . '/' . date('Ymd');
|
|
|
|
- $path = public_path() . $rel_path;
|
|
|
|
- // dd($request);
|
|
|
|
- if (!file_exists($path)) {
|
|
|
|
- if (!@mkdir($path, 0755, true)) {
|
|
|
|
-// return ErrorCode::ATTACHMENT_MKDIR_FAILED;
|
|
|
|
- return $this->_jsonMessage(500, ['message' => '目录创建失败']);
|
|
|
|
- }
|
|
|
|
- }
|
|
|
|
|
|
|
|
$file = $request[$field];
|
|
$file = $request[$field];
|
|
if ($file === null) {
|
|
if ($file === null) {
|
|
@@ -169,11 +40,9 @@ class Attachment
|
|
|
|
|
|
$fileSize = $file->getSize();
|
|
$fileSize = $file->getSize();
|
|
if ($fileSize > $size) {
|
|
if ($fileSize > $size) {
|
|
-// $result[$idx] = ErrorCode::ATTACHMENT_SIZE_EXCEEDED;
|
|
|
|
return $this->_jsonMessage(500, ['message' => '文件大小超过限制']);
|
|
return $this->_jsonMessage(500, ['message' => '文件大小超过限制']);
|
|
}
|
|
}
|
|
$fileMimeType = $file->getMimeType();
|
|
$fileMimeType = $file->getMimeType();
|
|
-
|
|
|
|
if (!empty($mimeType) && !in_array($fileMimeType, $mimeType)) {
|
|
if (!empty($mimeType) && !in_array($fileMimeType, $mimeType)) {
|
|
return $this->_jsonMessage(500, ['message' => '文件格式不被允许']);
|
|
return $this->_jsonMessage(500, ['message' => '文件格式不被允许']);
|
|
}
|
|
}
|
|
@@ -186,65 +55,71 @@ class Attachment
|
|
$md5_filename = $md5_filename . 'png';
|
|
$md5_filename = $md5_filename . 'png';
|
|
}
|
|
}
|
|
|
|
|
|
|
|
+ $file_Path = $file->getRealPath();
|
|
try {
|
|
try {
|
|
- if(!$file->move($path, $md5_filename)){
|
|
|
|
- return $this->_jsonMessage(500, ['message' => '上传失败']);
|
|
|
|
- }
|
|
|
|
-
|
|
|
|
-// $quality = 75;
|
|
|
|
-// $modal = null;
|
|
|
|
-// if(($modal = BaseSettingsModel::where('key', env('PHOTO_COMPRESS_QUALITY_KEY'))->first()) != null) {
|
|
|
|
-// $quality = $modal->value;
|
|
|
|
-// }
|
|
|
|
|
|
+ $ok = OSS::publicUpload(config('alioss.BucketName'),$md5_filename, $file_Path);
|
|
|
|
|
|
- $real_path = $path . '/' . $md5_filename;
|
|
|
|
- $url_path = $rel_path . '/' . $md5_filename;
|
|
|
|
-
|
|
|
|
- $source_info = null;
|
|
|
|
- if(($source_info = getimagesize($real_path)) != null) {
|
|
|
|
- $source_width = $source_info[0];
|
|
|
|
- $source_height = $source_info[1];
|
|
|
|
- \Log::info('$source_width'.$source_width.'$source_height'.$source_height);
|
|
|
|
- if($sizex || $sizey){
|
|
|
|
- if($sizex==0){
|
|
|
|
- $sizex = $source_width*($sizey/$source_height);
|
|
|
|
- }
|
|
|
|
- if($sizey==0){
|
|
|
|
- $sizey = $source_height*($sizex/$source_width);
|
|
|
|
- }
|
|
|
|
- \Log::info('$sizex'.$sizex.'$sizey'.$sizey);
|
|
|
|
- Image::make($real_path)->resize($sizex, $sizey)->save($real_path);
|
|
|
|
- }
|
|
|
|
|
|
+ if(!$ok){
|
|
|
|
+ return $this->_jsonMessage(500, ['message' => '上传失败']);
|
|
}
|
|
}
|
|
|
|
|
|
$attachment = new BaseAttachmentModel();
|
|
$attachment = new BaseAttachmentModel();
|
|
$attachment->name = $clientName;
|
|
$attachment->name = $clientName;
|
|
$attachment->md5 = $md5;
|
|
$attachment->md5 = $md5;
|
|
- $attachment->path = $real_path;
|
|
|
|
- $attachment->url = $url_path;
|
|
|
|
|
|
+ $attachment->path = config('alioss.FileUrl').$md5_filename;
|
|
|
|
+ $attachment->url = config('alioss.FileUrl').$md5_filename;
|
|
$attachment->size = $fileSize;
|
|
$attachment->size = $fileSize;
|
|
$attachment->file_type = $fileMimeType;
|
|
$attachment->file_type = $fileMimeType;
|
|
$attachment->class = $class;
|
|
$attachment->class = $class;
|
|
if ($attachment->save()) {
|
|
if ($attachment->save()) {
|
|
- return $this->_jsonMessage(200, ['message' => "上传成功", 'fileurl' => $url_path,'name'=>$md5_filename]);
|
|
|
|
-
|
|
|
|
|
|
+ return $this->_jsonMessage(200, ['message' => "上传成功", 'fileurl' => config('alioss.FileUrl').$md5_filename,'name'=>$md5_filename]);
|
|
} else {
|
|
} else {
|
|
- @unlink($real_path);
|
|
|
|
|
|
+ OSS::publicDeleteObject(config('alioss.BucketName'),$md5_filename);
|
|
return $this->_jsonMessage(500, ['message' => '数据库保存错误']);
|
|
return $this->_jsonMessage(500, ['message' => '数据库保存错误']);
|
|
-// $result= ErrorCode::ATTACHMENT_SAVE_FAILED;
|
|
|
|
}
|
|
}
|
|
} catch (FileException $e) {
|
|
} catch (FileException $e) {
|
|
- return $this->_jsonMessage(500, ['message' => '上传失败']);
|
|
|
|
-// $result = ErrorCode::ATTACHMENT_MOVE_FAILED;
|
|
|
|
|
|
+ return $this->_jsonMessage(500, ['message' => '保存失败']);
|
|
|
|
+
|
|
}
|
|
}
|
|
|
|
+
|
|
}
|
|
}
|
|
|
|
|
|
- public function fileUpload($field, $request, $tag = 'files', $size = 10 * 1024 * 1024, array $mimeType = ['image/jpeg', 'image/png', 'image/gif','video/mp4','video/quicktime','text/plain']){
|
|
|
|
|
|
+ public function specialUpload(){
|
|
|
|
+
|
|
|
|
+ }
|
|
|
|
+
|
|
|
|
+
|
|
|
|
+ public function _uploadfiles(){
|
|
|
|
+
|
|
|
|
+ }
|
|
|
|
+
|
|
|
|
+
|
|
|
|
+ public function _jsonMessage($status,$ret){
|
|
|
|
+ $ret['code'] = $status;
|
|
|
|
+ return $ret;
|
|
|
|
+ }
|
|
|
|
+
|
|
|
|
+
|
|
|
|
+ /**
|
|
|
|
+ * 上传附件
|
|
|
|
+ *
|
|
|
|
+ * @param string|array $field 文件key
|
|
|
|
+ * @param Request $request laravel's http request
|
|
|
|
+ * @param string $tag 文件tag
|
|
|
|
+ * @param int $size 文件size限制,默认2M
|
|
|
|
+ * @param array $mimeType 文件mime类型限制,默认不限
|
|
|
|
+ * @return array|string|int 返回:md5字串|ErrorCode或[md5字串|ErrorCode]
|
|
|
|
+ */
|
|
|
|
+
|
|
|
|
+
|
|
|
|
+ public function localUpload($field, $request, $tag = 'files', $size = 10 * 1024 * 1024, array $mimeType = ['image/jpeg', 'image/png', 'image/gif','video/mp4','video/quicktime'])
|
|
|
|
+ {
|
|
|
|
+
|
|
$tag = $request['folder'];
|
|
$tag = $request['folder'];
|
|
$class = isset($request['class']) ? $request['class'] : '未分类';
|
|
$class = isset($request['class']) ? $request['class'] : '未分类';
|
|
$sizex = isset($request['sizex']) ? $request['sizex'] : 0;
|
|
$sizex = isset($request['sizex']) ? $request['sizex'] : 0;
|
|
$sizey = isset($request['sizey']) ? $request['sizey'] : 0;
|
|
$sizey = isset($request['sizey']) ? $request['sizey'] : 0;
|
|
- $rel_path = $tag . '/' . date('Ymd');
|
|
|
|
|
|
+ $rel_path = '/image/'.$tag . '/' . date('Ymd');
|
|
$path = public_path() . $rel_path;
|
|
$path = public_path() . $rel_path;
|
|
// dd($request);
|
|
// dd($request);
|
|
if (!file_exists($path)) {
|
|
if (!file_exists($path)) {
|
|
@@ -253,8 +128,9 @@ class Attachment
|
|
return $this->_jsonMessage(500, ['message' => '目录创建失败']);
|
|
return $this->_jsonMessage(500, ['message' => '目录创建失败']);
|
|
}
|
|
}
|
|
}
|
|
}
|
|
-
|
|
|
|
|
|
+ \Log::info($request);
|
|
$file = $request[$field];
|
|
$file = $request[$field];
|
|
|
|
+
|
|
if ($file === null) {
|
|
if ($file === null) {
|
|
return $this->_jsonMessage(500, ['message' => '没有文件被上传']);
|
|
return $this->_jsonMessage(500, ['message' => '没有文件被上传']);
|
|
}
|
|
}
|
|
@@ -268,7 +144,6 @@ class Attachment
|
|
return $this->_jsonMessage(500, ['message' => '文件大小超过限制']);
|
|
return $this->_jsonMessage(500, ['message' => '文件大小超过限制']);
|
|
}
|
|
}
|
|
$fileMimeType = $file->getMimeType();
|
|
$fileMimeType = $file->getMimeType();
|
|
-
|
|
|
|
if (!empty($mimeType) && !in_array($fileMimeType, $mimeType)) {
|
|
if (!empty($mimeType) && !in_array($fileMimeType, $mimeType)) {
|
|
return $this->_jsonMessage(500, ['message' => '文件格式不被允许']);
|
|
return $this->_jsonMessage(500, ['message' => '文件格式不被允许']);
|
|
}
|
|
}
|
|
@@ -286,12 +161,6 @@ class Attachment
|
|
return $this->_jsonMessage(500, ['message' => '上传失败']);
|
|
return $this->_jsonMessage(500, ['message' => '上传失败']);
|
|
}
|
|
}
|
|
|
|
|
|
-// $quality = 75;
|
|
|
|
-// $modal = null;
|
|
|
|
-// if(($modal = BaseSettingsModel::where('key', env('PHOTO_COMPRESS_QUALITY_KEY'))->first()) != null) {
|
|
|
|
-// $quality = $modal->value;
|
|
|
|
-// }
|
|
|
|
-
|
|
|
|
$real_path = $path . '/' . $md5_filename;
|
|
$real_path = $path . '/' . $md5_filename;
|
|
$url_path = $rel_path . '/' . $md5_filename;
|
|
$url_path = $rel_path . '/' . $md5_filename;
|
|
|
|
|
|
@@ -312,8 +181,22 @@ class Attachment
|
|
}
|
|
}
|
|
}
|
|
}
|
|
|
|
|
|
|
|
+ $attachment = new BaseAttachmentModel();
|
|
|
|
+ $attachment->name = $clientName;
|
|
|
|
+ $attachment->md5 = $md5;
|
|
|
|
+ $attachment->path = $real_path;
|
|
|
|
+ $attachment->url = $url_path;
|
|
|
|
+ $attachment->size = $fileSize;
|
|
|
|
+ $attachment->file_type = $fileMimeType;
|
|
|
|
+ $attachment->class = $class;
|
|
|
|
+ if ($attachment->save()) {
|
|
return $this->_jsonMessage(200, ['message' => "上传成功", 'fileurl' => $url_path,'name'=>$md5_filename]);
|
|
return $this->_jsonMessage(200, ['message' => "上传成功", 'fileurl' => $url_path,'name'=>$md5_filename]);
|
|
|
|
|
|
|
|
+ } else {
|
|
|
|
+ @unlink($real_path);
|
|
|
|
+ return $this->_jsonMessage(500, ['message' => '数据库保存错误']);
|
|
|
|
+// $result= ErrorCode::ATTACHMENT_SAVE_FAILED;
|
|
|
|
+ }
|
|
} catch (FileException $e) {
|
|
} catch (FileException $e) {
|
|
return $this->_jsonMessage(500, ['message' => '上传失败']);
|
|
return $this->_jsonMessage(500, ['message' => '上传失败']);
|
|
// $result = ErrorCode::ATTACHMENT_MOVE_FAILED;
|
|
// $result = ErrorCode::ATTACHMENT_MOVE_FAILED;
|