/** * 添加商品API * @access public * @author xiaohei * @param name 商品名称 * @param num 商品货号 * @param store_id 商店id * @param goods_type_id 商品分类id * @param goods_sorts_id 店铺街分类id * @param goods_brand_id 商品品牌id * @param shop_price 本店售价 * @param limit_num 限购数量 * @param on_self 是否上架 * @param is_quality 是否精品 * @param is_new 是否新品 * @param is_hot 是否热销 * @param stock 库存 * @param label 标签 * @param weight 商品重量 * @param goods_describe 商品描述 * @param image_thumbnail 商品缩略图图片 * @param image 商品图片 * @return array * @date 2018-10-5 ***/ public function addGoods(Request $request){ $valid = Validator::make($request->all(), [ 'name' => 'required|string', 'num' => 'required|string', 'store_id' => 'required|string', 'goods_type_id' => 'required|string', 'goods_sorts_id' => 'required|string', 'goods_brand_id' => 'required|string', 'shop_price' => 'required|string', 'limit_num' => 'required|integer', 'on_self' => 'required|boolean', 'is_quality' => 'required|is_quality', 'is_new' => 'required|is_new', 'is_hot' => 'required|is_hot', 'stock' => 'required|string', 'label' => 'required|string', 'weight' => 'required', 'goods_describe' => 'required|string', 'image_thumbnail' => 'required|image', 'image' => 'required|image', ]); if ($valid->fails()) { return array( 'code' => ExceptionErrorCode::CODEMUST, 'massage' => $valid->errors()->first(), 'data' => $valid->errors()->first() ); } $fileTypes = ['image/png', 'image/jpg', 'image/jpeg']; if ($request->file('image_thumbnail')->isValid()&&$request->file('image')->isValid()){ //判断上传文件是否存在 if (in_array($request->file('image_thumbnail')->getMimeType(), $fileTypes)&&in_array($request->file('image')->getMimeType(), $fileTypes)){ //判断上传格式是否正确 $image_thumbnail = $request->file('image_thumbnail')->store('/public/image/goods_image_thumbnail'); //上传商品缩略图 $image_thumbnail = str_replace('public', '/storage', $image_thumbnail); $image = $request->file('image')->store('/public/image/goods_image'); //上传商品图片 $image = str_replace('public', '/storage', $image); try{ $result = Commoditys::create([ 'name' =>$request->name, 'num' =>$request->num, 'store_id' =>$request->store_id, 'goods_sorts_id' =>$request->goods_sorts_id, 'goods_brand_id' =>$request->goods_brand_id, 'shop_price' =>$request->shop_price, 'market_price' =>$request->market_price, 'stock' =>$request->stock, 'label' =>$request->label, 'image_thumbnail' =>$image_thumbnail, 'image' =>$image, ])->toArray(); } catch (\Exception $e) { throwCustomException(ExceptionErrorCode::DATA_CREATE_FAILED); //插入数据库失败 } return responseMessage([],ExceptionErrorCode::OPERATOR_OK); //添加成功 } else{ throwCustomException(ExceptionErrorCode::IMAGE_FORMAT_IS_NOT_CORRECT); //图片格式不正确 } }else{ throwCustomException(ExceptionErrorCode::IMAGE_FORMAT_EFFICACY); //图片无效 } }
PS:laravel图片上传默认路径为: 项目名\storage\app\public
而外部无法访问storage目录,外部实际访问目录为 --》项目名\public\storage...
应该创建一个 public/storage
的软链接指向这个目录。你可以直接通过 php artisan storage:link
命令来创建此链接。