当前位置: 首页 > 面试题库 >

使用HTML5在其他位置下载文件

鲁华皓
2023-03-14
问题内容

我正在从下面的代码中使用HTML5下载文件,您可以在 JSBINHTML5上实时查看运行情况。下载文件DEMO
及其工作正常,并在浏览器默认的“ 下载文件夹”中下载文件

<!DOCTYPE html>
<html>
</head>    
</head>
<body>
<table>
    <tr><td>Text To Save:</td></tr>
    <tr>
        <td colspan="3">
            <textarea id="inputTextToSave" style="width:512px;height:256px"></textarea>
        </td>
    </tr>
    <tr>
        <td>Filename To Save As:</td>
    <td><input id="inputFileNameToSaveAs"></td>
        <td><button onclick="saveTextAsFile()"> Save Text To File </button></td>
    </tr>
    <tr>
        <td>Select A File To Load:</td>
        <td><input type="file" id="fileToLoad"></td>
        <td><button onclick="loadFileAsText()">Load Selected File</button><td>
    </tr>
</table>
<script type='text/javascript'>
function saveTextAsFile()
{
    var textToWrite = document.getElementById("inputTextToSave").value;
    var textFileAsBlob = new Blob([textToWrite], {type:'text/plain'});
    var fileNameToSaveAs = document.getElementById("inputFileNameToSaveAs").value;

    var downloadLink = document.createElement("a");
    downloadLink.download = fileNameToSaveAs;
    downloadLink.innerHTML = "Download File";
    if (window.webkitURL != null)
    {
        // Chrome allows the link to be clicked
        // without actually adding it to the DOM.
        downloadLink.href = window.webkitURL.createObjectURL(textFileAsBlob);
    }
    else
    {
        // Firefox requires the link to be added to the DOM
        // before it can be clicked.
        downloadLink.href = window.URL.createObjectURL(textFileAsBlob);
        downloadLink.onclick = destroyClickedElement;
        downloadLink.style.display = "none";
        document.body.appendChild(downloadLink);
    }
    downloadLink.click();
}

function destroyClickedElement(event)
{
    document.body.removeChild(event.target);
}

function loadFileAsText()
{
    var fileToLoad = document.getElementById("fileToLoad").files[0];
    var fileReader = new FileReader();
    fileReader.onload = function(fileLoadedEvent) 
    {
        var textFromFileLoaded = fileLoadedEvent.target.result;
        document.getElementById("inputTextToSave").value = textFromFileLoaded;
    };
    fileReader.readAsText(fileToLoad, "UTF-8");
}
</script>
</body>
</html>

但我想在其他位置下载它。就像我离线使用此代码一样,只在index.html文件中包含上部代码。当我从浏览器运行此文件时,file:///C:/Users/Public/Desktop/它将下载该文件并将其保存在file:///C:/Users/Public/Downloads/。因此,我想从调用它的位置下载此文件。为此,我从以下代码中选择路径。它给了我这样的路径,/C:/Users/Public/Desktop/所以我想在这里保存文件。无论我index.html将这个文件放到哪里,它都会下载该文件并将其保存在index.html文件中。这怎么可能?

var url = window.location.pathname;
var folderpath = url.substring(0,url.lastIndexOf('/')+1);
alert(folderpath);

问题答案:

这是不可能的,因为这带来了安全风险。人们在其文件夹结构中使用了相当真实的信息,访问文件夹名称本身就构成了直接风险。

大多数操作系统倾向于仅默认为下载位置,这是用户通过使用的浏览器决定的。不是网站。



 类似资料:
  • 我目前试图下载一个文件从谷歌驱动器使用PyDrive,但我只能下载文件到相同的位置作为我的Python程序。有没有办法指定文件的下载位置?这是我目前下载文件的方式。

  • 问题内容: Hibernate配置文件(.hbm.xml)的理想位置是 但我想将这些配置设置放在其他位置,例如 我怎样才能做到这一点? 如果我将配置文件放在该位置,并且启动了Tomcat,则在加载该配置时会出现错误提示 找不到hibernate.cfg.xml 问题答案: 要配置文件的位置,请使用而不是在创建时。 要配置文件的位置,请使用。 也可以看看: Java文档

  • 好的,到目前为止,我已经把我的程序转到我想下载链接的网站并选择它,然后firefox对话框出现,我不知道该怎么办。我想将此文件保存到桌面上的文件夹中。我每晚都用这个,所以我需要它来工作。请帮忙。 以下是我从网站上获取下载链接的代码:

  • 本文向大家介绍如何使用HTML5地理位置查找位置?,包括了如何使用HTML5地理位置查找位置?的使用技巧和注意事项,需要的朋友参考一下 HTML5 Geolocation API使您可以与自己喜欢的网站共享位置。JavaScript可以捕获您的纬度和经度,并且可以发送到后端Web服务器,并进行精美的位置感知操作,例如查找本地商家或在映射上显示您的位置。 地理位置API使用全局导航器对象的新属性,即

  • 问题内容: 我必须使用下面给出的Selenium Webdriver执行以下任务。 单击任何开始下载任何文件的链接/按钮(文件类型可以是图像,pdf,jar等) 单击弹出窗口上的“保存”(如果显示)(例如http://selenium.googlecode.com/files/selenium-server-standalone-2.33.0.jar) 提供所需的位置以保存该文件。 任何人都可以共

  • 问题内容: 如何在angularjs中使用HTML5地理位置?我可以使用HTML5来获得它;但是如何将其传递给控制器​​中的angularjs范围?任何示例jsfiddle都会挽救我的一天! 问题答案: 你可以做点什么 您需要执行$ scope。$ apply来在地理位置到达时触发摘要周期并更新所有观察者。