繁体   English   中英

Laravel 5.1文件上传,文件夹和数据库的文件名相同

[英]Laravel 5.1 file upload, File's same name for folder and database

我的控制器代码将文件名存储到数据库表中,还将文件移动到文件夹中。

问题是我将文件的原始名称存储在数据库表中,相比之下,我正在移动具有uniqueid()和time()的文件。 将来会出现问题。 因为在数据库表中文件名和移动文件名不同。

if(Input::hasFile('profile_pic')){
            $pic = Input::file('profile_pic');
            $mobile->photo1 = $pic[0]->getClientOriginalName();
            $mobile->photo2 = $pic[1]->getClientOriginalName();
            $mobile->photo3 = $pic[2]->getClientOriginalName();
            $mobile->photo4 = $pic[3]->getClientOriginalName();
            $mobile->photo5 = $pic[4]->getClientOriginalName();
                foreach ($pic as $k=>$file){
                    if(!empty($file)){
                        $file->move(public_path() . '/uploads/', time() . uniqid() . '-' . $k . '-laptop');
                    }
                }
        }

您可以将两个名称都存储在数据库中。 例如,将一个存储为original_name ,将一个存储为generated_name

如果您想让用户下载文件,则可以通过从数据库中检索原始文件来提供文件名。 它看起来应该像这样:

$photo = Photo::find(1);
return response()->download($photo->generated_filename, $photo->filename);

您可以尝试使用类似的方法:

if(Input::hasFile('profile_pic')){
    $pic = Input::file('profile_pic');
    foreach ($pic as $k=>$file){
        if(!empty($file)){
            $temp = $k+1;
            $mobile->photo.$temp = time() . uniqid() . '-' . $k . '-laptop';
            $file->move(public_path() . '/uploads/', $mobile->photo.$temp);
        }
    }
}

暂无
暂无

声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.

 
粤ICP备18138465号  © 2020-2024 STACKOOM.COM