文件上傳
在config文件夾下新建一個 項目名.php
return [
'title' => 'My Test',
'posts_per_page' => 5,
'uploads' => [
'storage' => 'local',
'webpath' => '/uploads', //上傳文件存放的目錄 在public文件夾下
],
];
view視圖代碼
{{--如果要上傳文件,必須要在Form里面設置files為true--}}
{!! Form::open(array('url'=>'create/show','files'=>true)) !!}
{{--name為iamge--}}
{!! Form::file('image') !!}
<br />
{!! Form::submit('提交') !!}
{!! Form::close() !!}
<?php
namespace App\Http\Controllers;
//必須使用這個Request
use Illuminate\Http\Request;
use App\Http\Requests;
use Illuminate\Support\Facades\Input;
use App\Test;
class CreateController extends Controller
{
public function create(){
return view('create.create');
}
public function show(Request $request){
if ($image = $request->hasFile('image')){
$file = $request->file('image');
//判斷文件上傳過程中是否出錯
if(!$file->isValid()){
return '文件上傳出錯!';
}
//或者文件夾路徑 如果沒有則返回false
$destPath = realpath(public_path('uploads'));
/**
* 檢查一個文件或目錄是否存在
* @param 文件或文件夾路徑
* @return
*/
if(!file_exists($destPath)){
/**
* 試圖創建指定的目錄的路徑名.
* @param string $pathname 文件或文件夾所在路徑.
* @param int $mode [optional] 默認情況下,默認的模式為0777(rwxrwxrwx)
* 讀、寫、運行三項權限可以用數字表示,就是r=4,w=2,x=1
* r(Read,讀取) w(Write,寫入) x(eXecute,執行)
* @param bool $recursive [optional] <p>
* 允許嵌套目錄中指定的路徑創造。默認為假
* @param resource $context [optional] ¬e.context-support;
* @return bool true on success or false on failure.
*/
mkdir($destPath,0755,true);
}
/**
* 返回原始文件名.
* 這是提取請求的文件已經上傳
* @return string|null 原來的名字
*/
$filename = $file->getClientOriginalName();
/**
* 將文件移動到一個新的位置.
* @param string $directory 字符串目錄目標文件夾
* @param string $name 字符串名稱的新文件名
* @return 返回文件,一個表示新文件的文件對象
* @throws FileException if, 如果因為任何原因,文件不能被移動
*/
if(!$file->move($destPath,$filename)){
return '保存文件失敗!';
}
return '文件上傳成功!';
}
return '創建成功';
}
}
下載
public function down()
{
return response()->download(realpath(base_path('public/uploads')).'/logo.png',
'Laraveldown.png');
}
