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\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 帧 该文件上传的更多相关文章
- Laravel 5 教程 - 文件上传
一.简介 Laravel 有很棒的文件系统抽象层,是基于 Frank de Jonge 的 Flysystem 扩展包. Laravel 集成的 Flysystem 提供了简单的接口,可以操作本地端空 ...
- Laravel请求/Cookies/文件上传
一.HTTP请求 1.基本示例:通过依赖注入获取当前 HTTP 请求实例,应该在控制器的构造函数或方法中对Illuminate\Http\Request 类进行类型提示,当前请求实例会被服务容器自动注 ...
- laravel中的文件上传到本地+七牛云上传
首先在filesystems.php 配置好上传的文件的目录起名为upload 在Storage/目录下面 目录下面的app/upload 如果没有这个文件会自动创建 这里的名字upload名字是跟控 ...
- Laravel - 上手实现 - 文件上传、保存到 public 目录下
1.为了访问方便,将上传的文件保存在 public 目录下,需要进行修改配置. 找到 config/filesystems.php 文件然后修改 root.具体如下: 'local' => [ ...
- laravel oauth2.0 文件上传报错
报错信息: "message": "Invalid stream or file provided for UploadedFile", " ...
- Laravel 5.2 教程 - 文件上传
一.简介 Laravel 有很棒的文件系统抽象层,是基于 Frank de Jonge 的 Flysystem 扩展包. Laravel 集成的 Flysystem 提供了简单的接口,可以操作本地端空 ...
- laravel 文件上传
laravel 文件上传 先开扩展 表单中能够选择图片 数据处理C层, 接图片并保存 保存图片: 设置目录 store()的第一个参数说明: 存放图片的子目录. 如何获取文件的类型 大小: $uplo ...
- bootstrap-fileinput文件上传组件和laravel引用(未完)
前言:之前的三篇介绍了下bootstrap table的一些常见用法,发现博主对这种扁平化的风格有点着迷了.前两天做一个excel导入的功能,前端使用原始的input type='file'这种标签, ...
- Laravel 5 - 文件上传
一.简介 Laravel 有很棒的文件系统抽象层,是基于 Frank de Jonge 的 Flysystem 扩展包. Laravel 集成的 Flysystem 提供了简单的接口,可以操作本地端空 ...
随机推荐
- C/C++ Resources
C/C++ Resources 一.C/C++相关资源 语言标准及文档● ISO C99http://www.open-std.org/JTC1/SC22/WG14/www/docs/n1124.pd ...
- 马航MH17事件将把普京逼入绝境?
据7月22日报道,马克兰东部民间武装22日凌晨将失事客机的"黑匣子"交给马来西亚方面.乌政府与民间武装允许在坠机地点附的小范围停火. 与此同一时候,联合国安理会21日通过决议,敦促 ...
- HDU 1535 Invitation Cards (POJ 1511)
两次SPFA. 求 来 和 回 的最短路之和. 用Dijkstra+邻接矩阵确实好写+方便交换.可是这个有1000000个点.矩阵开不了. d1[]为 1~N 的最短路. 将全部边的 邻点 交换. d ...
- linux 软连接 硬连接
1.Linux链接概念 Linux链接分两种,一种被称为硬链接(Hard Link),另一种被称为符号链接(Symbolic Link).默认情况下,ln命令产生硬链接. [硬连接] 硬连接指通过索引 ...
- Theano+Keras+CUDA7.5+VS2013+Windows10x64配置
Visual Studio 2013 正常安装,这里只要C++打勾就可以. ANACONDA ANACONDA是封装了Python的科学计算工具,装这个就可以不用额外装Python了.在安装之前建议先 ...
- STL__queue_的应用
转:http://hi.baidu.com/xiaotiandm/item/bda34511cf9e99098fbde41a 调用的时候要有头文件: #include<stdlib.h> ...
- 使用HtmlAgilityPack批量抓取网页数据
原文:使用HtmlAgilityPack批量抓取网页数据 相关软件点击下载登录的处理.因为有些网页数据需要登陆后才能提取.这里要使用ieHTTPHeaders来提取登录时的提交信息.抓取网页 Htm ...
- 1.SQL统计某张表的列数。
select count(syscolumns.name) from syscolumns , sysobjects where syscolumns.id ...
- 知识网之C++总结
米老师常说的一句话:构造知识网. 立即要考试了.就让我们构造一下属于C++的知识网.首先从总体上了解C++: 从图中能够了解到,主要有五部分.而当我们和之前的知识联系的话,也就剩下模板和运算符重载以及 ...
- HDU 4814 Golden Radio Base 模拟
题目链接:http://acm.hdu.edu.cn/showproblem.php?pid=4814 题目大意: 把一个正整数表示为φ进制, φ = (1+√5)/2 . 且已知: 1. φ + 1 ...