gpt4 book ai didi

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

转载 作者:行者123 更新时间:2023-12-01 03:34:31 24 4
gpt4 key购买 nike

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%3A//mysite.localhost.com/f96c26b4-9938-4f6e-941e-edbdae3454c9

我只是想知道是否可以用文件夹路径替换 mysite.localhost.com 。我什至尝试用文件夹的完整路径替换 URL,但 createObjectURL 仅适用于 URL。有没有将文件保存到文件夹的功能?

最佳答案

根据您的评论

I want to save on server side..

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

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

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

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

<小时/>

但是你实际上需要的是保存你传递的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);
}

关于jquery - 是否可以使用 createObjectURL 保存到文件夹中?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/38735292/

24 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com