laravel 图片上传

/**
 * 添加商品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 命令来创建此链接。

转载于:https://my.oschina.net/vioyangx/blog/2223091

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值