2015-07-02 8 views
0

У меня есть два сервера: A и B. My Classic ASP-приложение развернуто на сервере A. Сервер B содержит папку (ScannedDocuments). Я создал общий диск на сервере A, чтобы указать на эту папку. Привод общего доступа называется Q :.Вызов папки общего диска с использованием javascript

В IE 7, когда я пытаюсь получить доступ к файлу с помощью JavaScript, я использую:

window.open(file://Q:/a.txt) 

Это открывает файл. Но в IE 8 и выше и во всех версиях Firefox он не открывается. Ни генерация ошибки, ни открытие файла.

Я думаю, что он блокируется функциями безопасности браузера.

Пожалуйста, дайте мне знать, как я могу открывать файлы в этих версиях браузера.

Есть ли другой способ открыть удаленный файл с помощью javascript или с помощью IIS?

** Отредактировано ** Я пробовал создать виртуальный каталог в IIS и указывать на общий диск. Но это дает ошибку: ресурс или каталог не найдены.

Я использую IIS 7

+0

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

+0

@AnantDabhi Вы имеете в виду IIS ? Какие шаги мне нужно выполнить? Я использую IIS 7. Я попытался создать виртуальный каталог в IIS и указать его на общий диск. Когда я использую: window.open (https: // ip address/Q/a.txt, он не предоставляет ресурс. – RKh

+1

да, вы идете правильно. Проверьте этот URL https://jamfnation.jamfsoftware.com/article .html? id = 309 может быть полезно для вас –

ответ

0

@Anant Dabhi прав - создать простой Ajax вызов сервера муравей содержимого возврата файла.

Клиент (JS). Используйте его вместо window.open (файл: // Q: /a.txt)

function getFile(filename) { 
    $.ajax({ 
     url: "/YourWeb/File/Get", 
     data: { 
      filename: filename 
     }, 
     success: function (data) { 
      console.log(data); 
     } 
    }); 
} 

Ваш "бэкенд". Предположим, что ваш используете .NET :)

public ActionResult Get() 
{ 
    string pathToFolder = "x:\\yyy\\zzz"; 
    // Strip any directories and leave only name of file. Exception is possible ;) 
    string filename = Path.GetFileName(Request["filename"]); 
    byte[] ba = File.ReadAllBytes(Path.Combine(pathToFolder, filename)); 
    string s = Encoding.UTF8.GetString(ba); 

    // Return as text (if you are absolutetlly sure it is text!) 
    return Content(s); 
    // Or pack it in JSON object to have status 
    return Json(new { Status = true, Data = s }); 
} 

Вы можете подключиться к UNC, если вы хотите https://msdn.microsoft.com/en-us/library/windows/desktop/aa385482%28v=vs.85%29.aspx

+0

Это классическое приложение ASP. – RKh

+0

Я думаю, это нормально использовать этот код в ASP.NET. вам нужно вернуть объект JSON, используя 'new JavaScriptSerializer(). Serialize (new {Status = true, Data = s});' –