Example #1
0
 /**
  * 一次选中多个文件进行上传,请使用name="files[]" multiple="multiple"上传
  * <input type="file" accept="image/gif, image/jpeg, image/png, image/jpg" name="files[]" multiple="multiple">
  * @return string[] 多个来自七牛的预览网址
  */
 public static function actionUploadMultipleFiles()
 {
     $fileSizeMax = 5 * 1024 * 1024;
     $fileTypeAllowed = array('jpg', 'png', 'jpeg', 'gif', 'doc', 'docx', 'pdf');
     if (!array_key_exists('files', $_FILES) || count($_FILES['files']) == 0) {
         return Utility::getArrayForResults(RUNTIME_CODE_ERROR_UNKNOWN, '没有发现上传的文件,请检查。');
     }
     $upload_file = $_FILES['files'];
     $previewUrls = array();
     for ($i = 0; $i < count($upload_file['name']); $i++) {
         if ($upload_file["size"][$i] > 0) {
             $file_tmp_path = $upload_file["tmp_name"][$i];
             $file_type = pathinfo($upload_file["name"][$i], PATHINFO_EXTENSION);
             if (isset($fileTypeAllowed) && !in_array(strtolower($file_type), $fileTypeAllowed)) {
                 Utility::getArrayForResults(RUNTIME_CODE_ERROR_PARAM, '提示:不支持上传该' . $file_type . '类型的文件,支持:' . implode('、', $fileTypeAllowed));
             }
             if ($upload_file["size"] > $fileSizeMax) {
                 Utility::getArrayForResults(RUNTIME_CODE_ERROR_PARAM, '错误,文件大小不可超过' . $fileSizeMax . '字节。');
             }
             if ($upload_file["size"][$i] > 5 * 1024 * 1024) {
                 return Utility::getArrayForResults(RUNTIME_CODE_ERROR_UNKNOWN, '错误,文件大小不可超过5MB。');
             }
             $file_tmp_path_type = $file_tmp_path . '.' . $file_type;
             rename($file_tmp_path, $file_tmp_path_type);
             $previewUrls[] = W2Qiniu::uploadAndReturnQiniuPreviewUrl($file_tmp_path_type);
         }
     }
     return Utility::getArrayForResults(RUNTIME_CODE_OK, '', $previewUrls);
 }