You need to enable JavaScript to run this app.
优惠活动
大模型
产品
解决方案
定价
更多

如何将本地blob图片URL通过JavaScript上传到PHP并获取为File文件

本地blob格式图片URL(示例:blob:http://localhost/1d795687-b478-4edf-9b3d-8dda768b9d9f)需要通过JS获取为File文件后上传到PHP,对应的网络请求面板参考如下图:
展示blob图片的网络请求面板

实现步骤

1. 前端将blob URL转为File对象

通过fetch请求blob地址获取Blob实例后,即可转为标准File对象:

async function blobUrlToFile(blobUrl, fileName = 'upload-image.png') {
  const response = await fetch(blobUrl);
  const blob = await response.blob();
  // 第三个参数可按需自定义MIME类型
  return new File([blob], fileName, { type: blob.type });
}

2. 前端上传File到PHP接口

使用FormData封装文件后发送POST请求即可:

async function uploadImage() {
  // 替换为你的实际blob地址
  const blobUrl = 'blob:http://localhost/1d795687-b478-4edf-9b3d-8dda768b9d9f';
  const uploadFile = await blobUrlToFile(blobUrl, 'custom-image.png');
  
  const formData = new FormData();
  formData.append('upload_file', uploadFile);
  
  // 替换为你的PHP上传接口地址
  const res = await fetch('/upload.php', {
    method: 'POST',
    body: formData
  });
  const result = await res.json();
  console.log('上传结果', result);
}

3. 后端PHP接收处理示例

<?php
// 自定义文件存储目录,需确保目录有写入权限
$saveDir = './upload/';
if (!file_exists($saveDir)) {
    mkdir($saveDir, 0755, true);
}

$uploadFile = $_FILES['upload_file'];
if ($uploadFile['error'] === UPLOAD_ERR_OK) {
    $savePath = $saveDir . basename($uploadFile['name']);
    if (move_uploaded_file($uploadFile['tmp_name'], $savePath)) {
        echo json_encode([
            'code' => 0,
            'msg' => '上传成功',
            'save_path' => $savePath
        ]);
    } else {
        echo json_encode(['code' => 1, 'msg' => '文件保存失败']);
    }
} else {
    echo json_encode(['code' => 1, 'msg' => '上传失败,错误码:' . $uploadFile['error']]);
}
?>
注意事项
  • blob URL仅在生成它的当前页面上下文生效,页面刷新、跨标签页/iframe调用都会失效,必须在生成blob URL的同页面内完成转换和上传操作
  • 若blob URL跨域,需要对应服务端配置CORS规则允许当前域名请求,否则fetch会触发跨域报错
  • 生产环境使用时建议在PHP端增加文件大小、格式、安全校验,避免上传恶意文件

内容的提问来源于stack exchange,提问作者Vinícius

相关产品推荐
方舟 Agent Plan

超全模态模型 × Harness 升级,最新支持 Deepseek-V4.1-Flash、GLM-5.3 系列、Doubao-Seedream-5.0-pro、Kimi-K3 (部分), 限时 9.9 元起

最近更新时间:2026.10.05 00:57:03