好,我承认我的忠告.

今天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. Phpcms V9 所有的中文变量

    $LANG['start_update_category'] = '开始更新栏目页 ...'; $LANG['start_to_end_id'] = '" 第{page} - {endpag ...

  2. jquery中怎么删除<ul>中的整个<li>包括节点

    .$('ul li').remove(); .$('ul li').each(function(){ $(this).remove(); }); .$("ul").find(&qu ...

  3. 系统变量file.encoding对Java的运行影响有多大?(转)good

    这个话题来自: Nutz的issue 361 在考虑这个issue时, 我一直倾向于使用系统变量file.encoding来改变JVM的默认编码. 今天,我想到, 这个系统变量,对JVM的影响到底有多 ...

  4. ThinkPHP配置项(六)

    原文:ThinkPHP配置项(六) 配置项--这只是部分的配置,后期会随时跟大家更新分享 1:修改URL分隔符 目录:thinkphp\Home\Conf\config.php打开配置文件代码中加上: ...

  5. [C++]const修饰符

    Date: 2014-1-1 Summary: const 修饰符笔记 Contents: 1.const 修饰符 声明一个常量数据类型 , 在编译时就确定数据类型 2.const 与 指针 一般情况 ...

  6. 数据结构《17》---- 自己主动补齐之《二》----Ternary Search Tree

    一. 序言 上一篇文章中,给出了 trie 树的一个实现. 能够看到,trie 树有一个巨大的弊病,内存占用过大. 本文给出还有一种数据结构来解决上述问题---- Ternary Search Tre ...

  7. SQL SERVER CHARINDEX函数

    CHARINDEX函数经常常使用来在一段字符中搜索字符或者字符串.假设被搜索的字符中包括有要搜索的字符,那么这个函数返回一个非零的整数,这个整数是要搜索的字符在被搜索的字符中的開始位数.即CHARIN ...

  8. 慕尼黑大学公开课 Competitive Strategy(竞争策略)总结

    第一章博弈 同时的博弈:双方同时定制策略 如果有显著的次优策略总是不如另一个,则剔除它. 如果一个策略组合中没有一方可以单独改变其策略以提高回报,则称为Nash均衡.一个游戏可能没有也可能有多个Nas ...

  9. HelloGithub

    <HelloGithub月刊>第一期   <HelloGithub月刊> 因为现在这个项目只有我自己做,只敢叫“月刊”,希望有志同道合者,快点加入到这个项目中来!同时,如果您有 ...

  10. [poj 2991]Crane[线段树表示向量之和,而非数量]

    题意: 起重机的机械臂, 由n段组成, 对某一些连接点进行旋转, 询问每次操作后的末端坐标. 思路: 由于旋转会影响到该点之后所有线段的角度, 因此容易想到用线段树记录角度, 成段更新. (但是不是每 ...