相关疑难解决方法(0)

如何在HTML中设置文件输入的值?

注意:

下面的答案和评论反映了2009年遗留浏览器的状态.现在,您可以在2017年使用JavaScript和dataTransfer或FileList对象实际动态/编程地设置文件输入元素的值.

有关详细信息和演示,请参阅此问题中的答案:
如何以编程方式设置文件输入值(即:拖放文件时)?

我该如何设置它的值?

<input type="file" />
Run Code Online (Sandbox Code Playgroud)

html javascript file-upload preset

307
推荐指数
8
解决办法
55万
查看次数

如何解决C:\ fakepath?

<input type="file" id="file-id" name="file_name" onchange="theimage();">
Run Code Online (Sandbox Code Playgroud)

这是我的上传按钮.

<input type="text" name="file_path" id="file-path">
Run Code Online (Sandbox Code Playgroud)

这是我必须显示文件完整路径的文本字段.

function theimage(){
 var filename = document.getElementById('file-id').value;
 document.getElementById('file-path').value = filename;
 alert(filename);
}
Run Code Online (Sandbox Code Playgroud)

这是解决我问题的JavaScript.但在警报值给了我

C:\fakepath\test.csv 
Run Code Online (Sandbox Code Playgroud)

和Mozilla给了我:

test.csv
Run Code Online (Sandbox Code Playgroud)

但我想要本地完全限定的文件路径.如何解决这个问题?

如果这是由于浏览器安全问题,那么应该采用哪种替代方法呢?

html javascript dom file-upload

231
推荐指数
7
解决办法
39万
查看次数

动态设置文件输入的值

有没有办法设置文件input(<input type="file" />)的值,还是所有被阻止的安全性?我正在尝试使用谷歌齿轮的openFiles来制作一个简单的多重上传器.

注意:

下面的答案反映了2009年遗留浏览器的状态.现在,您可以在2017年使用JavaScript动态/编程地设置文件输入元素的值.

有关详细信息和演示,请参阅此问题中的答案:
如何以编程方式设置文件输入值(即:拖放文件时)?

html javascript dom google-gears

66
推荐指数
1
解决办法
9万
查看次数

在页面上删除文件时如何设置文件输入值?

我正在尝试创建一个控件,您可以在其中选择要在表单中提交的文件,并将文件放入其中以执行相同的操作.我有这样的东西,如果它是一个图像,它也会显示该文件的预览:

<div class="preview-image-container">

  <input type="file" name="File" id="File" accept="image/*" 
         class="image-url form-control" style="display:none;" />

  <div class="preview-image-dummy"></div><img class="preview-image-url" />
  <div class="preview-image-instruction">
    <div class="preview-image-btn-browse btn btn-primary">Select file</div>
    <p>or drop it here.</p>
  </div>

</div>
Run Code Online (Sandbox Code Playgroud)

这是MCVE的小提琴.

用户删除文件preview-image-container.该文件未随AJAX提交,用户需要提交包含更多数据的表单.

出于安全原因,我们不允许使用JavaScript更改输入文件的值.但是,我知道默认输入文件支持droppable,并且有一些网站让我们通过将它们放在表单中来选择文件,所以我的猜测是有一种方法可以做到这一点.

正如您从MCVE中看到的,我只对使用jQuery或纯JavaScript而不使用其他库感兴趣.

虽然可以使用dropzone.js,但它不符合我的要求,需要花费大量的时间来定制它的外观.此外,dropzone.js具有某些在我的ASP.NET应用程序中无法满足的配置要求.


有一个类似的问题,但没有一个正确的答案:
如何在HTML格式的表单中将文件对象设置为输入文件?

也不像上传拖放图像输入文件和预览,因为我已经实现了拖放和预览操作.我的问题是特定于在父容器中删除文件时输入空文件的问题.

javascript forms jquery events file

52
推荐指数
1
解决办法
4万
查看次数

IE的<input type ='file'>提供完整路径,仅需要文件名

从IE浏览器执行上传时,我的后端(org.apache.commons.fileupload)获取完整的文件路径.

对于其他非IE浏览器,它获取文件名,因为安全性,它是可以的.

如何从IE的输入中获取文件名

是否可以在UI上进行,因为我认为编辑apache lib并不是很优雅.

也许,输入字段存在一些参数?

我可以在服务器上做,但对UI方法感兴趣.

upload internet-explorer file input path

34
推荐指数
4
解决办法
4万
查看次数

设置输入文件表单的默认值

可能重复:
动态设置文件输入的值

我有一个输入文件HTML表单,我想在HTML表单中设置文件路径的初始值.我尝试更改标签"值",但它无论如何都不起作用. <input type="file" name="testcase" value= "C:\test.txt">

请给我一些关于这个小问题的建议.谢谢.

html javascript

24
推荐指数
1
解决办法
6万
查看次数

文件API,到本地文件的持久链接

我目前正在开发一些基于游戏的网页脚本(将游戏移植到网络上).脚本从我的Web主机下载数据,因此加载速度很慢(必须下载每个文件:地图,模型,纹理......).为了解决这个问题,我添加了一个选项,允许用户在他们的计算机中选择他们的本地游戏数据(使用File API - 拖放)直接从本地解析内容,避免从网上下载多个megas,结果非常快.

问题在于:每次重新加载浏览器时,都必须一次又一次地重新选择文件.它不是用户友好的.

那么,有没有办法从这个游戏存档中保留一个参考,以避免用户每次都重新进行拖放操作?我知道安全问题,只想知道是否有类似持久性URL.createObjectURL()的东西.

注意:游戏数据大概是〜2Go,所以不可能将它存储在FileSystem API中(我不想复制它,当你可以保留对它的引用时,浪费空间来复制数据).

谢谢 :)

javascript html5

13
推荐指数
1
解决办法
341
查看次数

Blob持续多久了?

我正在尝试编写一个使用画布绘制非常大的图像的故障安全程序(60 MB可能是较高的范围,而10 MB是较低的范围).我很久以前就发现调用canvas的同步函数toDataURL通常会导致页面在浏览器中崩溃,所以我调整了程序,使用toBlob填充程序来实现跨浏览器的兼容性.我的问题是:使用该URL.createObjectURL(blob)方法的Blob URL 持续多长时间?

我想知道是否有一种方法可以缓存Blob URL,这将允许它持续超出浏览器会话,以防有人想要在一个点上渲染部分图像,关闭浏览器,然后返回并稍后完成将Blob URL再次读入画布并从其停止的位置恢复.我注意到这个可选的autoRevoke参数可能是我正在寻找的,但我想确认我正在尝试做的事实际上是可能的.除非涉及不同的解决方案,否则您的答案中不需要代码示例,如果可以使用此方法或其他方式使Blob URL最后超出会话,则我只需要是或否.(如果由于某种原因页面崩溃并且它也像"恢复会话"选项那样,这也会很方便.)

我在考虑这样的事情:

function saveCache() {
  var canvas = $("#canvas")[0];
  canvas.toBlob(function (blob) {
    /*if I understand correctly, this prevents it from unloading
      automatically after one asynchronous callback*/
    var blobURL = URL.createObjectURL(blob, {autoRevoke: false});
    localStorage.setItem("cache", blobURL);
  });
}

//assume that this might be a new browser session

function loadCache() {
  var url = localStorage.getItem("cache");
  if(typeof url=="string") {
    var img = new Image();
    img.onload = function () …
Run Code Online (Sandbox Code Playgroud)

javascript blob persistent-storage

13
推荐指数
1
解决办法
6145
查看次数

HTML5 File API中的FileReader.readAsText如何工作?

我编写了以下代码来检查上传的文件是否存在使用HTML5文件API.

<input type="file" id="myfile">
<button type="button" onclick="addDoc()">Add Document</button>
<p id="DisplayText"></p>
Run Code Online (Sandbox Code Playgroud)

以下JavaScript代码已映射到它如下:

function addDoc() {
  var file=document.getElementById("myFile").files[0]; //for input type=file
  var reader=new FileReader();
  reader.onload = function(e) {}
  reader.readAsText(file);
  var error = reader.error;
  var texte=reader.result;
  document.getElementById("DisplayText").innerText=reader.result; /*<p id="DisplayText>*/
}
Run Code Online (Sandbox Code Playgroud)

从本地系统浏览文件后,我尝试在单击之前从文件夹中删除"浏览"文档addDoc().单击按钮后我仍然可以看到Filereader.result不是null并且可以显示所有内容.

有人可以解释Filereader的工作原理吗?一旦浏览文件,FileReader就会被绑定吗?

我们也可以检查系统Readonly Attribute with FileReader是否与Java类似File.canread()

有人可以建议吗?我有IE11来测试代码.

javascript html5 textarea drag-and-drop fileapi

11
推荐指数
1
解决办法
2万
查看次数

如何保存window.URL.createObjectURL()结果以备将来使用?

我正在HTML5中创建一个应用程序,您可以选择一个视频文件,然后应用程序使用HTML5 video标签和window.URL.createObjectURL().问题是我想在localStorage中保存有关此视频的数据,并在用户使用我的应用程序时再次播放,但正如Mozilla MDN所述,该方法的结果如下:

浏览器将在卸载文档时自动释放这些内容

那么我可以做我想做的事吗?或者在没有window.URL.createObjectURL()其他东西的情况下做同样的事情?

javascript html5

7
推荐指数
1
解决办法
2万
查看次数