很早時候寫的一些 上傳功能,現在都換成 對象存儲 了,基本不用原生的了;
跨域上傳圖檔; php 附件上傳
備份一下:
<?
/**
* 上傳壓縮檔案
*/
public function uploadzip()
{
// 擷取表單上傳檔案 例如上傳了001.jpg
$file = request()->file('file');
$path = 'uploads';
// 移動到架構應用根目錄/uploads/ 目錄下
$info = $file->validate(['size' => 20 * 1024 * 1024, 'ext' => 'zip,rar,7z'])->move($path);
if ($info) {
$name = $info->getInfo('name');
$size = $info->getInfo('size');
$ext = $info->getExtension();
$fileurl = $path . '/' . $info->getSaveName();
$data = [
'content' => $fileurl,
'name' => $name,
'size' => $size,
'ext' => $ext,
];
$this->success('ok', '', $data);
}
}
//删除附件
public function deletezip()
{
$content = Request::post('content', '');
$path = Env::get('root_path') . 'public/' . $content;
if (file_exists($path)) {
unlink($path);
$this->success('操作成功');
} else {
$this->error('操作失敗' . $path);
}
}
/**
* 跨域上傳圖檔
*/
public function cros_img()
{
// header('Access-Control-Allow-Origin: *'); 無限制
// header('Access-Control-Allow-Origin: http://XXX.XXX.cn');
// 允許跨域的origin白名單, 為空則允許所有origin跨域
$allowOrigin = config('app.allow_origin');
// 跨域通路的時候才會存在該字段
$origin = isset($_SERVER['HTTP_ORIGIN']) ? $_SERVER['HTTP_ORIGIN'] : '';
// 有配置白名單且目前origin在白名單
if (in_array($origin, $allowOrigin)) {
header("Access-Control-Allow-Origin:" . $origin);
}
header('Access-Control-Allow-Methods: GET, POST');
header('Access-Control-Allow-Headers: Origin, X-Requested-With, Content-Type, Accept, Authorization');
header('Access-Control-Allow-Credentials: true');
// 擷取表單上傳檔案 例如上傳了001.jpg
$file = request()->file('file');
$path = 'uploads';
// 移動到架構應用根目錄/uploads/ 目錄下
$info = $file->validate(['size' => 5 * 1024 * 1024, 'ext' => 'jpeg,jpg,png,gif,bmp'])->move($path);
if ($info) {
// 成功上傳後 擷取上傳資訊
// 輸出 jpg
$ext = $info->getExtension();
// 輸出 20160820/42a79759f284b767dfcb2a0197904287.jpg
$fileurl = $path . '/' . $info->getSaveName();
$thumb = getImgThumbUrl($fileurl);//生成縮略圖
// 輸出 42a79759f284b767dfcb2a0197904287.jpg
// echo $info->getFilename().'<br/>';
$name = $info->getInfo('name');
$size = $info->getInfo('size');
$data = [
'content' => $fileurl,
'thumb' => $thumb?$thumb:'',
'name' => $name,
'size' => $size,
];
return json(['code' => 1, 'msg' => '上傳成功!', 'data' => $data]);
} else {
// 上傳失敗擷取錯誤資訊
return json(['code' => 0, 'msg' => '上傳失敗!' . $file->getError(), 'data' => '']);
}
}
若有幫助到您,歡迎捐贈支援,您的支援是對我堅持最好的肯定(_)
你要保守你心,勝過保守一切。