我的用的5.4
read_at 在store时,自动填充了时间。请问大佬这是怎么回事?
我就是用的5.4,在bootstrap.js里引入require('vue-resource');这句这可以了。
// 上传到upanyun
function up_upyun(Request $request)
{
$file = $request->file('file_data');
$entension = $file ->getClientOriginalExtension();
$new_name = date('His') . mt_rand(1001, 9999) . '.' . $entension;
$path = '/img/' . date('Y') . '/' . date('m') . '/' . $new_name;
$res = Storage::disk('upyun')->writeStream($path, fopen($request->file('file_data'), 'r'));
$data = ['status' => false, 'msg' => '文件出错!'];
if($res)
$data = ['status' => true, 'msg' => '成功!', 'file_name' => env('UPYUN_PROTOCOL') . '://' . env('QINIU_DOMAIN') . $path];
return $data;
}
嗯这是刚刚整理的5.2上传代码。
5.2里这样可以上传成功。Storage::disk('upyun')->writeStream('files.jpg', fopen($request->file('file_data'), 'r'));
可能一:没有生成随机名。因为我传'/'报path is not a file, maybe a directory
可能二:put的第二个参数没有被实例。Storage::disk('upyun')->put('test.jpg', $request->file('file_data'));可以在upyun 上生成test.jpg,但是里面什么都没有。
您5.2试验怎么样?
不是。因为我上传到本地成功了
// 上传到upanyun
function up_upyun(Request $request)
{
$input = Input::all();
$file = Input::file('file_data');
$state = array_key_exists('state', $input) ? intval($input['state']) : 1;
$res = $file -> isValid();
if($res)
{
//上传文件的后缀.
$entension = $file -> getClientOriginalExtension();
//这个表示的是缓存在tmp文件夹下的文件的绝对路径
$real_path = $file -> getRealPath();
// 缓存在tmp文件夹中的文件名 例如 php8933.tmp 这种类型的.
$tmpName = $file ->getFileName();
//文件类型
//$mimeTye = $file -> getMimeType();
//上传后的文件名
$new_name = date('His') . mt_rand(1001, 9999) . '.' . $entension;
//文件路径
$path = '/uploads/images/article/' . date('Y') . '/' . date('m');
$re_path = public_path() . $path;
//创建文件夹
$this->_mk_dir($re_path);
$res = $file->move($re_path, $new_name);
if($res)
{
//插入到图片表
$src = $path . '/' . $new_name;
$data = ['path' => $src, 'state' => $state, 'ctime' => $_SERVER['REQUEST_TIME']];
Img::create($data);
$data = ['status' => true, 'msg' => '成功!', 'file_name' => $src];
}
else
{
$data = ['status' => false, 'msg' => '文件出错!'];
}
return $data;
}
else
{
$data = ['status' => false, 'msg' => '文件出错!'];
return $data;
}
}
// 上传到upanyun
function up_upyun(Request $request)
{
return Storage::disk('upyun')->put('', $request->file('file_data'));
return Storage::disk('upyun')->put('/', $request->file('file_data'));
}
失败。
所以认为您这个packages应该有laravel版本要求。
不是,在5。2里
$entension = $file -> getClientOriginalExtension();
//这个表示的是缓存在tmp文件夹下的文件的绝对路径
$real_path = $file -> getRealPath();
// 缓存在tmp文件夹中的文件名 例如 php8933.tmp 这种类型的.
$tmpName = $file ->getFileName();
//文件类型
//$mimeTye = $file -> getMimeType();
//上传后的文件名
$new_name = date('His') . mt_rand(1001, 9999) . '.' . $entension;
//文件路径
$path = '/uploads/images/article/' . date('Y') . '/' . date('m');
$re_path = public_path() . $path;
我这样上传到本地是可以成功的。上传到upyun提示报错。不管是Storage::disk('upyun')->put('', $request->file('file_data'));还是Storage::disk('upyun')->put('/', $request->file('file_data'));
然而5。4就能成功上传到upyun
<form action="/images" enctype="multipart/form-data" method="POST" role="form">
<legend>上传图片</legend>
{csrf_field()}
<div class="form-group">
<label for="">label</label>
<input type="file" class="form-control" id="" name="file_data">
</div>
<div class="form-group">
<input type="submit" class="form-control" id="" value="上传图片">
</div>
</form>
用laravel5.4成功了。
use Illuminate\Http\Request;
Route::get('/', function () {
return view('welcome');
});
Route::post('/images', function (Request $request) {
// return $request->file('file_data');
return Storage::disk('upyun')->put('/', $request->file('file_data'));
});
laravel5.2
// 上传到upanyun
function up_upyun(Request $request)
{
return Storage::disk('upyun')->put('', $request->file('file_data'));
}
报错了。
"require": {
"php": ">=5.5.9",
"laravel/framework": "5.2.*",
"jellybool/flysystem-upyun": "^1.0"
},
是直接composer您的github
我的laravel 5.2