问题标签 [fileapi]

For questions regarding programming in ECMAScript (JavaScript/JS) and its various dialects/implementations (excluding ActionScript). Note JavaScript is NOT the same as Java! Please include all relevant tags on your question; e.g., [node.js], [jquery], [json], [reactjs], [angular], [ember.js], [vue.js], [typescript], [svelte], etc.

0 投票
1 回答
837 浏览

google-chrome - Chrome XMLHttpRequest POST 编码问题

我使用 XMLHttpRequest 发送文件,如下所示:

在 Firefox 中它可以完美运行。看看萤火虫截图:http ://s8.postimage.org/4dw4gd5j7/Untitled.png

但是在 Chrome 中它看起来很糟糕:http ://s8.postimage.org/h7yrng8cl/chrome.png

看起来像一个编码问题。我试图添加一个charsetutf-8,但它仍然没有工作。

0 投票
1 回答
1519 浏览

html - HTML5 formdata:从远程服务器读取图像数据

有人知道吗,是否可以从远程 URL 将图像读取为二进制文件。我知道 File API 让我们有可能从本地系统读取二进制文件。但我找不到有关从远程 URL 读取的信息。也许我什至可以从浏览器缓存中读取这些信息,在我加载这个信息之后,或者其他?

0 投票
1 回答
492 浏览

javascript - IE - 如何将客户端图像文件读取为 base64

我很想知道是否有办法用 IE8 读取本地文件(如 FF File API 那样)?我的意思是使用 Internet Explorer 8 读取图像文件并将其转换为 base64 编码,然后将其分配给 JavaScript 变量。

我知道FF有办法,但是IE8可以吗?我找不到任何显示效果的完整片段,因此非常感谢任何有用的教程:)

0 投票
1 回答
636 浏览

javascript - Javascript 本地文件保存或 onSave 事件以获取保存的文件名

我正在开发一个需要某种文件系统访问权限的网络应用程序。理想情况下,我希望能够将文件“打开...”到应用程序中,然后将文件“保存”回用户打开它的位置的本地文件系统。

目前,我们使用 java 小程序来实现此功能,但由于 java 已经过时,我们需要使用 javascript 和 html5 来实现。

显然,由于浏览器内置的安全原因,这无法完成,所以我试图在某种程度上模仿它。

我正在使用 html5 文件 api 成功导入/打开文件,这样就成功了一半。困难的部分是获得保存功能。我正在接近使用 iframe 和内容处置,但是当浏览器设置为自动将文件下载到下载文件夹时会出现问题......用户可能会感到困惑并且无法找到他们刚刚下载的文件。

所以,我的问题是:浏览器的“另存为...”窗口是否有某种 onSave 事件或某种方式至少返回用户保存文件的文件名?

另外,我查看了 filesystem/fileWriter html5 api,但据我了解,它们仅限于本地文件系统的沙盒区域,并且仅在 chrome dev 版本中可用。

任何帮助,将不胜感激!

0 投票
2 回答
6153 浏览

php - 通过表单将文件上传到 Drupal 7 后,如何获取文件的路径?

我有一个将文件上传到我的 Drupal 安装的表单。我想将该文件的路径存储在表中。如何获取最近上传文件的路径?我试过

但这行不通。有什么线索吗?

0 投票
1 回答
24365 浏览

html - File 对象中 webkitRelativePath 属性的用途是什么?

如果您在 Chrome 控制台中使用以下简单的方法打印出 File 对象:

您将在其他属性中看到一个始终为空的webkitRelativePath属性:

它的目的是什么?以及如何利用它?

0 投票
1 回答
1228 浏览

javascript - 使用带有 jquery $.ajax 调用的 Mozilla FormData

我正在使用 html5 允许拖放文件,并使用 mozilla FormData() api 在 multipart/form-data 请求中提交表单数据以及文件(FormData 对象有一个 append() 函数,我追加值和文件)。我使用 jQuery.ajax() 并将数据设置为我创建的 FormData 对象,并将 processData 标志设置为 false,并将 contentType 设置为 "multipart/form-data" ,使用 beforeSend 处理程序调用 jqXHR.setReqeustHeader("Conetent-Type ", "multipart/form-data") 再次。但是在萤火虫中,我可以看到请求标头仍然具有 Content-Type: text/html 。

似乎 $.ajax() 忽略了我的内容类型规范。有没有其他人成功地使用 jQuery.ajax() 来处理 html5 的 FormData api?

我知道我可以在没有 jquery 帮助的情况下制作自己的 XMLHttpReqeust,而且它也可以。但是我喜欢jquery这样的统一框架。

0 投票
1 回答
468 浏览

html - 防止拖动本地代码/项目触发draenter

我正在构建一个 HTML5 文件上传,并且我希望当用户将文件拖到窗口上时触发 dragenter。这个想法是 dragenter 将触发灯箱样式覆盖,显示放置区域。

这是我的代码。(jQuery)

这工作正常,但如果用户抓取图像或一些文本并拖动它,它也会触发 dragenter 事件。有没有办法告诉我正在拖动什么,所以只有实际文件上传触发显示覆盖?

谢谢..

0 投票
1 回答
13726 浏览

javascript - HTML 5 文件上传事件

我正在尝试使用 HTML File Api 上传文件,但我似乎真的不知道该怎么做。我必须为 getImg() 函数提供什么事件?

HTML

JS

0 投票
1 回答
2034 浏览

image - Coldfusion 拒绝解码 base64 图像

几个小时前,我发现通过表单属性传递文件api创建的DataUrl,让coldfusion为我将图像文件写入服务器,我可以轻松地在html5文件api和coldfusion之间进行通信。

这工作得很好。

然而,现在它拒绝解码我传递的这些 base64 字符串。我已经在其他解码器中测试了 base64 字符串,它们可以正确显示图像。我没有对代码进行任何更改。所以谁能告诉我这里发生了什么..?

编辑 20/12:今天,当我在工作时打开电脑时,它又开始工作了。我仍然不清楚昨天发生了什么。Coldfusion 返回的错误是:“文件似乎不是 base64 编码的”,它绝对是,我检查了不止一次。我传递给 cfimage 标记的 base64 字符串包含标题,就像您描述的那样。