好,我承认我的忠告.

今天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\tmp\php5A69.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.

}

php laravel 帧 该文件上传的更多相关文章

  1. Laravel 5 教程 - 文件上传

    一.简介 Laravel 有很棒的文件系统抽象层,是基于 Frank de Jonge 的 Flysystem 扩展包. Laravel 集成的 Flysystem 提供了简单的接口,可以操作本地端空 ...

  2. Laravel请求/Cookies/文件上传

    一.HTTP请求 1.基本示例:通过依赖注入获取当前 HTTP 请求实例,应该在控制器的构造函数或方法中对Illuminate\Http\Request 类进行类型提示,当前请求实例会被服务容器自动注 ...

  3. laravel中的文件上传到本地+七牛云上传

    首先在filesystems.php 配置好上传的文件的目录起名为upload 在Storage/目录下面 目录下面的app/upload 如果没有这个文件会自动创建 这里的名字upload名字是跟控 ...

  4. Laravel - 上手实现 - 文件上传、保存到 public 目录下

    1.为了访问方便,将上传的文件保存在 public 目录下,需要进行修改配置. 找到 config/filesystems.php 文件然后修改 root.具体如下: 'local' => [ ...

  5. laravel oauth2.0 文件上传报错

    报错信息:   "message": "Invalid stream or file provided for UploadedFile",    " ...

  6. Laravel 5.2 教程 - 文件上传

    一.简介 Laravel 有很棒的文件系统抽象层,是基于 Frank de Jonge 的 Flysystem 扩展包. Laravel 集成的 Flysystem 提供了简单的接口,可以操作本地端空 ...

  7. laravel 文件上传

    laravel 文件上传 先开扩展 表单中能够选择图片 数据处理C层, 接图片并保存 保存图片: 设置目录 store()的第一个参数说明: 存放图片的子目录. 如何获取文件的类型 大小: $uplo ...

  8. bootstrap-fileinput文件上传组件和laravel引用(未完)

    前言:之前的三篇介绍了下bootstrap table的一些常见用法,发现博主对这种扁平化的风格有点着迷了.前两天做一个excel导入的功能,前端使用原始的input type='file'这种标签, ...

  9. Laravel 5 - 文件上传

    一.简介 Laravel 有很棒的文件系统抽象层,是基于 Frank de Jonge 的 Flysystem 扩展包. Laravel 集成的 Flysystem 提供了简单的接口,可以操作本地端空 ...

随机推荐

  1. RobotFrameWork(十一)AutoItLibrary测试库在win7(64bit)下安装及简单使用

    最近安装AutoItLibrary,发现在win7 x64下无法安装成功,后来经过定位,发现是3rdPartyTools\AutoIt目录下面AutoItX3.dll的问题.因为AutoItX3.dl ...

  2. Swift - 工具条(UIToolbar)的用法

    1,UIBarButtonItem是工具条按钮,有如下5种init初始化方法: (1)初始化为普通图片按钮 1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 1 ...

  3. [docker]docker的四种网络方式

    声明: 本博客欢迎转发,但请保留原作者信息! 博客地址:http://blog.csdn.net/halcyonbaby 内容系本人学习.研究和总结,如有雷同,实属荣幸! bridge方式(默认) H ...

  4. NET Core RC2

    .NET Core RC2/RTM 明确了时间表 .NET Core 经过了将近2年的开发,去年12月份发布的RC1版本,明确来说那只是一个beta版本,自从RC1发布以来,看到github里的RC2 ...

  5. C语言函数参数压栈顺序为何是从右到左?(从左向右的话,碰到printf的会陷入死循环)

    上学期学习了汇编语言,并在操作系统实验中使用了汇编+C语言混合编程,中间也了解了一些C语言与汇编语言的对应关系. 由于汇编语言是底层的编程语言,各种函数参数都要直接控制栈进行存取,在混合编程中,要用汇 ...

  6. oracle 密码文件文件

    密码文件作用: 密码文件用于dba用户的登录认证. dba用户:具备sysdba和sysoper权限的用户,即oracle的sys和system用户. 本地登录: 1)操作系统认证: [oracle@ ...

  7. IOCP模型与网络编程

    IOCP模型与网络编程 一.前言:        在老师分配任务(“尝试利用IOCP模型写出服务端和客户端的代码”)给我时,脑子一片空白,并不知道什么是IOCP模型,会不会是像软件设计模式里面的工厂模 ...

  8. poj3621 Sightseeing Cows --- 01分数规划

    典型的求最优比例环问题 參考资料: http://blog.csdn.net/hhaile/article/details/8883652 此题中,给出每一个点和每条边的权值,求一个环使 ans=∑点 ...

  9. Android 实现环形进度按钮circular-progress-button

    ※效果 ※简单介绍 显示运行进度的button,可用于数据的提交.系统登录等.动画效果非常棒.提高用户体验. ※使用说明 Declare button inside your layout XML f ...

  10. HashTable的数组和连接两种实现方法(Java版本号)

    1.散列表的接口类 package cn.usst.hashtable; /** * 散列表的接口类 * @author G-Xia * */ public interface HashTable { ...