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 提供了简单的接口,可以操作本地端空 ...
随机推荐
- 8086 CPU 寻址方式
8086 CPU 寻址方式灵活.有以下几种 idata 表示常量 1. [ idata ] 用一个常量来表示地址,可用于直接定位内存单元,但是在 MASM中要显实在的说明 ds 段寄存器, 比如 ...
- 浅解ARC中的 __bridge、__bridge_retained和__bridge_transfer
文章来源:http://www.outflush.com/2015/03/introduction-of-arc-bridge-type-transfer/ 在对 bridge 相关的修饰符解说前.首 ...
- rsyslog+LogAnalyzer 日志收集
Linux 之rsyslog+LogAnalyzer 日志收集系统 一.LogAnalyzer介绍 LogAnalyzer工具提供了一个易于使用,功能强大的前端,用于搜索,查看和分析网络活动数据,包括 ...
- Face Alignment at 3000FPS(C++版)工程配置
源地址:http://blog.csdn.net/sunshine_in_moon/article/details/49838245/ 3000FPS是人脸对齐算法,特点是速度快!我利用的是think ...
- crm2011js操作IFRAME和选项集
- [Xcode]some little skill
Date:2014-1-2 Summary: 自己在使用Xcode的一些小习惯,记录下来,我是这么用的,你呢? Contents:1.使用#warning 在工作中,难免需要做一些test,但是又怕忘 ...
- 【Android】读取sdcard卡上的全部图片而且显示,读取的过程有进度条显示
尽管以下的app还没有做到快图浏览.ES文件浏览器的水平,遇到大sdcard还是会存在读取过久.内存溢出等问题,可是基本思想是这种. 例如以下图.在sdcard卡上有4张图片, 打开app,则会吧sd ...
- Struts工作机制图+OGNL+EL+值栈(Map,对象栈)
struts 值栈 通过get set方法 方便的获取,设置属性值 比如从jsp页面传来的參数...从Action设置jsp所要回显的内容 注意EL表达式,struts2对request进 ...
- OCP读书笔记(4) - 配置备份设置
4.Configuring Backup Settings 查看RMAN持久化设置 [oracle@easthome ~]$ rman target / RMAN> show all; SQL& ...
- 基于Servlet、JSP、JDBC、MySQL的一个简单的用户注冊模块(附完整源代码)
近期看老罗视频,做了一个简单的用户注冊系统.用户通过网页(JSP)输入用户名.真名和password,Servlet接收后通过JDBC将信息保存到MySQL中.尽管是个简单的不能再简单的东西,但麻雀虽 ...