• php laravel 帧 该文件上传


    好,我承认我的忠告.

    今天laravel框架编写一个文件上传部分.总能找到不正确的路径.但是,终于攻克.

    以下我分享一下自己的学习体会吧.

    client

    <form method="POST" action="" enctype="multipart/form-data">

        <input type="file" name="myfile" />

        <input type="submit" name="submit" value="Submit" />

    </form>

    提交到server端.

    $file = Input::file('myfile');

    if($file -> isValid()){

        //检验一下上传的文件是否有效.

        $clientName = $file -> getClientOriginalName();//客户端文件名..

        $tmpName = $file ->getFileName();//缓存在tmp目录中的文件名称比如php8933.tmp 这样的类型的.

       $realPath = $file -> getRealPath();    //这个表示的是缓存在tmp目录下的文件的绝对路径

       //比如我的是:G:xampp mpphp5A69.tmp

      //这里要注意,假设我使用接下来的move方法之后, getRealPath() 就找不到文件的路径了.由于文件已经被移走了.

       所以这里道出了文件上传的原理,将文件上传的某个暂时文件夹中,然后使用Php的函数将文件移动到指定的文件夹.

      $entension = $file -> getClientOriginalExtension(); //上传文件的后缀.

        $mimeTye = file -> getMimeType();//大家对mimeType应该不陌生了. 我得到的结果是 image/jpeg.

       //这里要注意一点,曾经我们使用mime_content_type(),在php5.3 之后,開始使用 fileinfo 来获取文件的mime类型.所以要增加 php_fileinfo的php拓展.windows下是 php_fileinfo.dll,在php.ini文件里将 extension=php_fileinfo.dll前面的分号去掉就可以.当然要重新启动server.

      最后我们使用

      $path = $file -> move('storage/uploads');

      假设你这样写的话,默认是会放置在 我们 public/storage/uploads/php79DB.tmp  

      貌似不是我们希望的,假设我们希望将其放置在app的storage文件夹下的uploads文件夹中,而且须要改名的话..

      $path = $file -> move(app_path().'/storage/uploads',$newName);

      这里app_path()就是app目录所在的路径.$newName 能够是你通过某种算法获得的文件的名称.主要是不能反复产生冲突就可以.  比方 $newName = md5(date('ymdhis').$clientName).".".$extension;

      利用日期和client文件名称结合 使用md5 算法加密得到结果.不要忘记在后面加上文件原始的拓展名.

      好吧.開始本来想敲代码的,如今搞成这幅德行了..

      Best Wishes.

    }



  • 相关阅读:
    R语言高级编程系列之面向对象的类型系统--S3对象
    数据挖掘之KNN算法(C#实现)
    数据挖掘之决策树ID3算法(C#实现)
    C#矩阵运算类库
    2020年图机器学习的最新趋势
    ios开发笔记-7-bug解决
    ios开发笔记-6-ReactiveCocoa
    ios开发笔记-5-配置文件
    ios开发笔记-4-app打包测试流程
    ios开发笔记-3-微信支付
  • 原文地址:https://www.cnblogs.com/zfyouxi/p/5038675.html
Copyright © 2020-2023  润新知