龙空技术网

第5集:Webman文件上传

亮仔学编程 141

前言:

如今你们对“js 上传文件类型”大约比较关切,小伙伴们都想要剖析一些“js 上传文件类型”的相关内容。那么小编也在网络上收集了一些关于“js 上传文件类型””的相关文章,希望大家能喜欢,小伙伴们一起来学习一下吧!

1、获取上传文件:

获取整个上传文件数组($request->file();)

<!-- 表单代码 --><form method="post" action="; enctype="multipart/form-data" /><input name="file1" multiple="multiple" type="file"><input name="file2" multiple="multiple" type="file"><input type="submit"></form>
// $request->file()返回的格式array ('file1' => object(webman\Http\UploadFile),'file2' => object(webman\Http\UploadFile))

a.他是一个webman\Http\UploadFile实例的数组。

b.webman\Http\UploadFile类继承了 PHP 内置的 SplFileInfo 类,并且提供了一些实用的方法。

<?phpnamespace app\controller;use support\Request;class UploadController{  public function files(Request $request)  {    foreach ($request->file() as $key => $spl_file) {    var_export($spl_file->isValid()); // 文件是否有效,例如ture|false    var_export($spl_file->getUploadExtension()); // 上传文件后缀名,例如'jpg'    var_export($spl_file->getUploadMineType()); // 上传文件mine类型,例如 'image/jpeg'    var_export($spl_file->getUploadErrorCode()); // 获取上传错误码,例如 UPLOAD_ERR_NO_TMP_DIR UPLOAD_ERR_NO_FILE UPLOAD_ERR_CANT_WRITE    var_export($spl_file->getUploadName()); // 上传文件名,例如 'my-test.jpg'    var_export($spl_file->getSize()); // 获得文件大小,例如 13364,单位字节    var_export($spl_file->getPath()); // 获得上传的目录,例如 '/tmp'    var_export($spl_file->getRealPath()); // 获得临时文件路径,例如 `/tmp/workerman.upload.SRliMu`    }    return response('ok');  }}

注意:

a.文件被上传后会被命名为一个临时文件,类似 /tmp/workerman.upload.SRliMu

b.上传文件大小受到defaultMaxPackageSize限制,默认10M,可在config/server.php文件中修改max_package_size更改默认值。

c.请求结束后临时文件将被自动清除

d.如果请求没有上传文件则$request->file()返回一个空的数组

e.上传的文件不支持 move_uploaded_file() 方法,请使用 $file->move()方法代替。

2、获取特定上传文件:

$request->file('avatar');

如果文件存在的话则返回对应文件的webman\Http\UploadFile实例,否则返回null。

<?phpnamespace app\controller;use support\Request;class UploadController{  public function file(Request $request)  {    $file = $request->file('avatar');    if ($file && $file->isValid()) {    $file->move(public_path().'/files/myfile.'.$file->getUploadExtension());    return json(['code' => 0, 'msg' => 'upload success']);    }    return json(['code' => 1, 'msg' => 'file not found']);  }}

标签: #js 上传文件类型