bloburl转blob转成的file放入fromdata中传到ashx用httpPostedfile取不到
时间: 2024-05-28 07:14:33 浏览: 86
这个问题可能与代码实现有关,下面给出一个可能的解决方案:
1. 确认 bloburl 是否正确转换为了 blob 对象,并且能够通过 URL.createObjectURL(blob) 方法正确地转换为可供浏览器识别的 URL。
2. 确认从 blob 对象中获取的文件名是否正确。
3. 确认将获取到的文件通过 FormData 对象传递到后端时,使用的是正确的键名。
4. 在后端代码中,确认是否使用了正确的键名来获取传递过来的文件。
5. 确认传递文件时使用的 Content-Type 是否正确。
如果以上步骤都没有问题,可以尝试对代码进行调试,查看可能存在的其他问题。
相关问题
bloburl转回file
要将 Blob URL 转换回 File 对象,需要经过以下步骤:
1. 使用 XMLHttpRequest、fetch 或者其他网络请求库获取目标 Blob URL 对应的 Blob 数据。
2. 创建一个新的 File 对象,使用上一步获取的 Blob 数据作为构造函数的参数。
3. 如果需要,可以通过 File 对象的 name 和 type 属性来指定文件的名称和类型。
下面是一个示例代码:
```javascript
// 假设 blobUrl 是一个 Blob URL,fileListener 是一个监听 file 转换的回调函数
function blobUrlToFile(blobUrl, fileListener) {
// 创建一个 XMLHttpRequest 对象
var xhr = new XMLHttpRequest();
// 发送 GET 请求获取 Blob 数据
xhr.open('GET', blobUrl, true);
xhr.responseType = 'blob';
xhr.onload = function() {
// 获取 Blob 数据
var blobData = xhr.response;
// 创建一个 File 对象,使用 Blob 数据作为参数
var file = new File([blobData], "filename", {type: blobData.type});
// 调用监听函数,将转换后的 File 对象传递出去
fileListener(file);
};
xhr.send();
}
// 调用函数进行测试
blobUrlToFile('blob:http://example.com/123', function(file) {
console.log(file);
});
```
在上面的示例中,我们使用 XMLHttpRequest 对象发送了一个 GET 请求,并将响应的数据类型设置为 blob。然后,在 onload 事件的回调函数中,我们获取到了 Blob 数据,并使用它创建了一个 File 对象。最后,我们将转换后的 File 对象传递给了一个监听函数,用于在需要的地方使用。
需要注意的是,在使用 XMLHttpRequest 获取 Blob 数据时,可能会遇到跨域的问题。解决方法之一是在服务器端设置 CORS 头部,以允许跨域请求。
阅读全文