关于上传图片的一些思路

我们在添加文章时,除了文章标题,内容等,也需要给文章添加缩略图,此时对于图片的存储方式与顺序,有以下两种思路:

1、在点击上传图片后就将图片传入服务器,在填写好文章,提交文章内容时将图片路径一起保存到数据库

2、点击上传图片后,程序并未真正进行上传操作,只是拿到图片预计存储路径。填写好文章,提交文章内容时进行以下工作

一个是图片真正上传到服务器,同时文章内容及图片存储路径也存到数据库对应的表中去。

方法一的缺点是用户可能在上传完图片后,并未继续选择保存文章而离开页面,此时已经上传的图片却已保存到服务器中,如果恶意发生,会导致服务器上存在太多垃圾图片

方法二的优点则是避开了方法一的缺陷。

但是鉴于目前我们硬盘资源的成本较低,目前在开发过程中,选择方法一。所有用户上传过的图片可与用户名称对应出来,比较好的体验是,用户在上传图片的过程中,可看到之前上传过的图片,并从中进行选择,这样避免了将重复的图片进行二次上传。

分享一些上传图片的代码:

laravel php 部分:

    //将上传过来的图片存到指定的文件夹
    public function imageupload(Request $request){   
        $year=date("Y");
        $month=date("m");
        $targetFolder = $_SERVER['DOCUMENT_ROOT'].'/uploads/'.$year.$month.'/';
        if(!is_dir($targetFolder)){
            mkdir($targetFolder,0777,true);
        }
        $tempFile = $_FILES['file']['tmp_name'];
        $targetPath =  '/uploads/'.$year.$month.'/'. $request->input('name');
        $targetFile = rtrim($targetFolder,'/') . '/' . $request->input('name');
        if(move_uploaded_file($tempFile,$targetFile)){
            $path = array();
            $path[0] = $targetPath;
            echo json_encode($path);
            //把图片路径存储到数据库
        }else{
            echo "0";
        }
    }

相关前台添加图片部分,可参考h-ui后台管理中图片管理中的添加图片部分。

 

posted @ 2017-07-11 06:56  mayer326  阅读(566)  评论(0编辑  收藏  举报