当前位置: 首页 > 知识库问答 >
问题:

是否可以使用createObjectURL保存到文件夹中?

宗政霄
2023-03-14
URL.createObjectURL(event.target.files[0] this makes me able to view the image just uploaded in the browser. Using the same hack is there a way, where I can store the file/image into a folder instead of URL?

 console.debug(URL.createObjectURL(event.target.files[0]));

以上内容将注销,此:blob:http://mysite.localhost.com/f96c26b4-9938-4f6e-941e-edbdae3454c9

我只是想知道我是否可以替换mysite。本地主机。具有文件夹路径的com。我甚至尝试用文件夹的完整路径替换URL,但是createObjectURL只能在URL上工作。是否有将文件保存到文件夹的功能?

共有1个答案

归松
2023-03-14

根据你的评论

我想保存在服务器端...

答案变成“是的,这是可能的”。

首先,让我们解释一下你的误解:

方法URL. createObjectURL()返回的字符串是一个URI,指向浏览器内存中的某个位置,其中作为第一个参数传递的Blob将作为文件访问。

除非通过此URI,否则无法访问此文件,并且此URI仅可用于当前会话。您不能共享它,也不能从其他计算机访问它,甚至不能使用其他浏览器从同一台计算机访问它。当调用它的文档关闭时,它将被删除(在某些实现中,它需要硬刷新)。

但实际上你需要的是保存你通过的Blob
这非常容易实现,因为FormData对象允许您通过XHR请求发送它。

input.onchange = function() {

  var formData = new FormData();
  formData.append('file', this.files[0], 'yourFileName.ext');

  var xhr = new XMLHttpRequest();
  xhr.onload = callback; // assuming you've got a callback function
  xhr.open('POST', yourServerSideFileHandlerScript);
  xhr.send(formData);

};

或者使用jQuery,

$(input).on('change', function() {

  var formData = new FormData();
  formData.append('file', this.files[0], 'yourFileName.ext');

  $.ajax({
    url: yourServerSideFileHandlerScript,
    data: formData,
    processData: false,
    contentType: false,
    type: 'POST',
    success: callback
  });

});

然后,您将能够将其作为任何文件上传到服务器端。

服务器端代码示例(此处为php):

if ( isset( $_FILES["file"] ) ){
  $dir = 'some/dir/';
  $blob = file_get_contents($_FILES["file"]['tmp_name']);
  file_put_contents($dir.$_FILES["file"]["name"], $blob);
}
 类似资料:
  • 问题内容: 我的Android手机上有一个数据库,我需要将信息保存到SD卡上。 是否可以将数据库文件以可读状态保存到SD卡上?我尚未找到有关如何执行此操作的任何信息。我知道数据库的名称,字段等… 我发现了一些示例,这些示例显示了如何保存到SD卡,但并不是我真正需要的。 将数据库文件复制到SD卡的某些源代码将是完美的。 希望这个问题很清楚。 问题答案: 是。这是我使用的功能: 对于我从事的项目,我在

  • MainActivity.class MainActivity中的

  • 在shell脚本中,我想从某个URL下载一个文件,并将其保存到特定的文件夹中。使用命令将文件下载到特定文件夹时应使用的特定CLI标志是什么,或者如何获得该结果?

  • 我有下一个代码: 但当我运行它时,它会出错: TypeError:不支持的类型“ 我尝试了很多方法,但似乎不可能将日期时间保存到DynamoDB。顺便说一句,它在MongoDB中运行良好。 有什么解决办法吗?

  • 问题内容: 我用np.save()保存了几个numpy数组,并将它们放在一起非常大。 是否可以将它们全部加载为内存映射文件,然后对它们进行串联和切片,而无需将任何内容都加载到内存中? 问题答案: 使用显然将数组加载到内存中。为避免这种情况,您可以轻松地在新文件中创建一个thrid数组,并从要连接的数组中读取值。以更有效的方式,您还可以将新阵列追加到磁盘上已存在的文件中。 在任何情况下,您都必须为数

  • 问题内容: 我正在尝试使用HttpClient下载PDF文件。我可以获取文件,但是我不确定如何将字节转换为PDF并将其存储在系统中的某个位置 我有以下代码,如何将其存储为PDF? 问题答案: 编辑: 您还可以使用BufferedOutputStream和BufferedInputStream来加快下载速度: