美文网首页
文件的上传和接收代码

文件的上传和接收代码

作者: 鸿雁长飞光不度 | 来源:发表于2018-01-08 01:22 被阅读0次

1.二进制上传

1. 1 php接收

 public function upload()
 {
        // 获取表单上传文件
        $file = request()->file('file');
        // 移动到上传临时目录
        $info = $file->rule('uniqid')->move(get_image_path(config('image_folder_temp')));
        if ($info) {
            return $this->returnOk(array('msg' => '上传成功', 'file_name' => $info->getSaveName()));
        } else {
            return $this->returnErr('上传失败,请重试!');
        }
    }

1.2 iOS上传

NSString *URL = [NSString stringWithFormat:@"%@%@",[HSApi ShareApi].HS_URL_HEAD,@"file/upload"];

AFHTTPSessionManager *manager = [AFHTTPSessionManager manager];
manager.responseSerializer = [AFHTTPResponseSerializer serializer];//设置服务器允许的请求格式内容
[manager POST:URL parameters:nil constructingBodyWithBlock:^(id<AFMultipartFormData>  _Nonnull formData) {
    [formData appendPartWithFileData:files name:@"file" fileName:@"filename.jpg" mimeType:@"image/jpg"];
    
} progress:^(NSProgress * _Nonnull uploadProgress) {
    
} success:^(NSURLSessionDataTask * _Nonnull task, id  _Nullable responseObject) {
    NSDictionary *JSON = [NSJSONSerialization JSONObjectWithData:responseObject options:NSJSONReadingAllowFragments error:nil];
    //[HSCoverView showMessage:@"上传成功"];
    success(JSON[@"file_name"]);
} failure:^(NSURLSessionDataTask * _Nullable task, NSError * _Nonnull error) {
    
}];

1.3 前端canvas画布生成图片上传

canvas.toBlob(function (blob) {
// 图片ajax上传
    var fd = new FormData();
    fd.append('file', blob);
    $.ajax({
        type: 'POST',
        url: 'http://appdev.hskaoyan.com/xxx/file/upload',
        data: fd,
        processData: false,
        contentType: false
    }).done(function (data) {
        console.log(data);
    });
}, 'image/jpeg');

2. base64 加密

2.1 php接收

  public function saveBaseImage(Request $request)
  {
        if ($request->isPost()) {
            $base64_img = trim($request->param('image'));
            if (!preg_match('/^(data:\s*image\/(\w+);base64,)/', $base64_img, $result)) {
                // 匹配图片文件失败
                return $this->returnErr('不支持的文件格式,请重试!');
            }
            $img_ext = $result[2];
            if (!in_array($img_ext, array('jpeg', 'jpg', 'png'))) {
                // 文件类型错误,不支持该类型
                return $this->returnErr('仅支持jpg、jpeg、png的图片!');
            }
            // 保存临时图片
            $src_name = config('image_folder_temp') . uniqid() . '.' . $img_ext;
            $src_path = get_image_path($src_name, '', get_server_name());
            if (!file_put_contents($src_path, base64_decode(str_replace($result[1], '', $base64_img)))) {
                return $this->returnErr('上传头像失败,请重试!');
            }
            return $this->returnOk($src_name);
        }
    }

2.2 canvas画布转图片上传

var dataURL = canvas.toDataURL("image/png");
$.ajax({
    async: false,
    url: '/admin/image/saveBaseImage',
    data: {image: dataURL, img_folder: '/tmp/'},
    type: "post",
    success: function (data) {
        alert(data);
    }
})

相关文章

  • 文件的上传和接收代码

    1.二进制上传 1. 1 php接收 1.2 iOS上传 1.3 前端canvas画布生成图片上传 2. base...

  • input上传图片预览

    前端代码示例 下面是后端nodejs代码示例前端上传文件,后端接收并将图片地址返回给前端 下面是处理文件上传的路由...

  • 文件上传和下载

    文件上传 文件上传涉及到前台页面的编写和后台服务器端代码的编写,前台发送文件,后台接收并保存文件,这才是一个完整的...

  • SpingBoot上传文字与文件

    接收安卓端通过retrofit上传的文字及图片,安卓代码见这里直接上代码。 设置文件上传的大小

  • 文件上传处理

    服务端文件上传的接收 游览器端的,js代码设置!

  • Java Web文件上传展示进度

    1、文件上传演示准备 接前面“Java Web中的文件上传和下载” 为了演示文件上传,先新增一个用于接收文件上传的...

  • PHP学习笔记之文件上传类代码实现

    文件上传类代码示例: 单文件上传表单: 多文件上传表单: 文件上传处理php代码:

  • js 文件上传和下载

    文件上传 FormData 和 FileReader URL.createObjectURL([接收b...

  • linux命令之curl

    curl上传文件 后端是用的multipart控件接收 测试代码清单一 curl Controller 参数 cu...

  • hutool部分使用记录

    http上传文件(MultipartFile接收)

网友评论

      本文标题:文件的上传和接收代码

      本文链接:https://www.haomeiwen.com/subject/vbfipxtx.html