2017-02-13 2 views
0

Я создал код, в котором я хочу, чтобы некоторые настройки были сделаны. «Сохранить текст в файл» загружает текстовый файл в папку загрузки. Я хочу, чтобы он подсказал мне путь. Он должен спросить меня, где сохранить файл, и часть загрузки должна произойти на задней панели и не должна быть видимой.Сохранение файла в папке, указанной пользователем HTML

Вот код для справки

<html> 
<body> 

<table> 
    <tr><td>Text to Save:</td></tr> 
    <tr> 
     <td colspan="3"> 
      <textarea id="inputTextToSave" cols="80" rows="25"></textarea> 
     </td> 
    </tr> 
    <tr> 
     <td>Filename to Save As:</td> 
     <td><input id="inputFileNameToSaveAs"></input></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 textToSave = document.getElementById("inputTextToSave").value; 
    var textToSaveAsBlob = new Blob([textToSave], {type:"text/plain"}); 
    var textToSaveAsURL = window.URL.createObjectURL(textToSaveAsBlob); 
    var fileNameToSaveAs = document.getElementById("inputFileNameToSaveAs").value; 

    var downloadLink = document.createElement("a"); 
    downloadLink.download = fileNameToSaveAs; 
    downloadLink.innerHTML = "Download File"; 
    downloadLink.href = textToSaveAsURL; 
    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> 
+2

«часть загрузки должна произойти на заднем конце» - вы работаете на стороне клиента JavaScript, нет конца. – Quentin

+0

Когда я говорю «конец», я подразумеваю, что загружаемый файл не должен быть видимым в кадре/экране –

+0

Вопрос, о котором вы говорите, отличается от того, что я спросил. –

ответ

0

Вы не можете скачать файл с помощью JavaScript в другое место, потому что это создает угрозу для безопасности компьютера пользователя. Единственное, что вы могли бы сделать, это загрузить текстовый файл в папку загрузки пользователей. Однако, если вам действительно нужно загрузить файл в другой каталог, вы можете сделать это с расширением браузера. Также нет способа убедиться, что пользователь не видит загрузку файла. Если вы действительно хотите, чтобы пользователь не видел загрузку файла, вы можете использовать диск при загрузке, но эти ошибки обычно быстро исправляются владельцами баров.

+0

Не могли бы вы рассказать мне имя расширения, о котором вы говорите? –

+0

Я говорю о создании собственного расширения –

+0

Исправьте меня, если я ошибаюсь, поэтому java-скрипт не может сохранить файл в определенной папке, но он имеет разрешение на чтение и может читать из браузера. –

Смежные вопросы