Hướng dẫn read file from server javascript - đọc tệp từ máy chủ javascript

Trên máy chủ, có một tệp văn bản. Sử dụng JavaScript trên máy khách, tôi muốn có thể đọc tệp này và xử lý nó. Định dạng của tệp trên máy chủ không thể được thay đổi.

Làm thế nào tôi có thể lấy nội dung của tệp vào các biến JavaScript, vì vậy tôi có thể thực hiện xử lý này? Kích thước của tệp có thể lên tới 3,5 MB, nhưng nó có thể dễ dàng được xử lý theo các khối, giả sử, 100 dòng [1 dòng là 50-100 ký tự].

Không có nội dung nào của tệp nên được hiển thị cho người dùng; Anh ta sẽ thấy kết quả xử lý dữ liệu trong tệp.

Tshepang

11.7K21 Huy hiệu vàng90 Huy hiệu bạc134 Huy hiệu đồng21 gold badges90 silver badges134 bronze badges

Hỏi ngày 26 tháng 12 năm 2010 lúc 6:54Dec 26, 2010 at 6:54

Bạn có thể sử dụng khung ẩn, tải tệp trong đó và phân tích nội dung của nó.

HTML:


JavaScript:


function LoadFile[] {
    var oFrame = document.getElementById["frmFile"];
    var strRawContents = oFrame.contentWindow.document.body.childNodes[0].innerHTML;
    while [strRawContents.indexOf["\r"] >= 0]
        strRawContents = strRawContents.replace["\r", ""];
    var arrLines = strRawContents.split["\n"];
    alert["File " + oFrame.src + " has " + arrLines.length + " lines"];
    for [var i = 0; i < arrLines.length; i++] {
        var curLine = arrLines[i];
        alert["Line #" + [i + 1] + " is: '" + curLine + "'"];
    }
}

Lưu ý: Để điều này hoạt động trong trình duyệt Chrome, bạn nên bắt đầu nó bằng cờ --Wallow-file-Access-from-Files. tín dụng.

Đã trả lời ngày 26 tháng 12 năm 2010 lúc 13:37Dec 26, 2010 at 13:37

5

Đang tải dữ liệu khổng lồ đó không phải là một kế hoạch tuyệt vời, nhưng nếu bạn phải, đây là phác thảo về cách bạn có thể làm điều đó bằng cách sử dụng chức năng $.ajax[] của JQuery.




getTxt = function []{

  $.ajax[{
    url:'text.txt',
    success: function [data]{
      //parse your data here
      //you can split into lines using data.split['\n'] 
      //an use regex functions to effectively parse it
    }
  }];
}


  Get Text

John Hascall

9.0294 Huy hiệu vàng48 Huy hiệu bạc69 Huy hiệu đồng4 gold badges48 silver badges69 bronze badges

Đã trả lời ngày 26 tháng 12 năm 2010 lúc 7:31Dec 26, 2010 at 7:31

Amjad Masadamjad MasadAmjad Masad

3.9951 Huy hiệu vàng20 Huy hiệu bạc20 Huy hiệu đồng 201 gold badge20 silver badges20 bronze badges

Bạn cần sử dụng AJAX, về cơ bản là gửi yêu cầu đến máy chủ, sau đó nhận được một đối tượng JSON, bạn chuyển đổi sang đối tượng JavaScript.

Kiểm tra điều này:

//www.w3schools.com/ajax/tryit.asp?filename=tryajax_first

Nếu bạn đang sử dụng thư viện jQuery, nó thậm chí còn dễ dàng hơn:

//api.jquery.com/jQuery.ajax/

Đã nói điều này, tôi khuyên bạn không nên tải xuống tệp 3,5 MB vào JS! Đó không phải là một ý hay. Thực hiện xử lý trên máy chủ của bạn, sau đó trả về dữ liệu sau khi xử lý. Sau đó, nếu bạn muốn nhận dữ liệu mới, hãy gửi yêu cầu AJAX mới, xử lý yêu cầu trên máy chủ, sau đó trả về dữ liệu mới.

Hy vọng điều đó sẽ giúp.

Đã trả lời ngày 26 tháng 12 năm 2010 lúc 6:59Dec 26, 2010 at 6:59

RafidrafidRafid

Phim thương hiệu vàng 18K2366 Huy hiệu bạc105 Huy hiệu đồng23 gold badges66 silver badges105 bronze badges

12

Tôi đã sử dụng đề xuất của RAFID về việc sử dụng Ajax.

Điều này làm việc cho tôi:

var url = "//www.example.com/file.json";

var jsonFile = new XMLHttpRequest[];
    jsonFile.open["GET",url,true];
    jsonFile.send[];

    jsonFile.onreadystatechange = function[] {
        if [jsonFile.readyState== 4 && jsonFile.status == 200] {
            document.getElementById["id-of-element"].innerHTML = jsonFile.responseText;
        }
     }

Về cơ bản, tôi [gần như theo nghĩa đen] đã sao chép mã này từ //www.w3schools.com/ajax/tryit.asp?filename=tryajax_get2 Vì vậy, hãy tín dụng cho họ cho mọi thứ.

Tôi không có nhiều kiến ​​thức về cách thức hoạt động của nó nhưng bạn không cần phải biết cách sử dụng phanh của bạn để sử dụng chúng;]

Hi vọng điêu nay co ich!

23k

1.4523 huy hiệu vàng20 Huy hiệu bạc51 Huy hiệu đồng3 gold badges20 silver badges51 bronze badges

Đã trả lời ngày 11 tháng 9 năm 2014 lúc 20:14Sep 11, 2014 at 20:14

Nô -ê Garynoah GaryNoah Gary

83610 Huy hiệu bạc25 Huy hiệu Đồng10 silver badges25 bronze badges

Có vẻ như XMLHttpRequest đã được thay thế bằng API tìm nạp. Google đã xuất bản một giới thiệu tốt bao gồm ví dụ này làm những gì bạn muốn:

fetch['./api/some.json']
  .then[
    function[response] {
      if [response.status !== 200] {
        console.log['Looks like there was a problem. Status Code: ' +
          response.status];
        return;
      }

      // Examine the text in the response
      response.json[].then[function[data] {
        console.log[data];
      }];
    }
  ]
  .catch[function[err] {
    console.log['Fetch Error :-S', err];
  }];

Tuy nhiên, bạn có thể muốn gọi


function LoadFile[] {
    var oFrame = document.getElementById["frmFile"];
    var strRawContents = oFrame.contentWindow.document.body.childNodes[0].innerHTML;
    while [strRawContents.indexOf["\r"] >= 0]
        strRawContents = strRawContents.replace["\r", ""];
    var arrLines = strRawContents.split["\n"];
    alert["File " + oFrame.src + " has " + arrLines.length + " lines"];
    for [var i = 0; i < arrLines.length; i++] {
        var curLine = arrLines[i];
        alert["Line #" + [i + 1] + " is: '" + curLine + "'"];
    }
}

0 thay vì

function LoadFile[] {
    var oFrame = document.getElementById["frmFile"];
    var strRawContents = oFrame.contentWindow.document.body.childNodes[0].innerHTML;
    while [strRawContents.indexOf["\r"] >= 0]
        strRawContents = strRawContents.replace["\r", ""];
    var arrLines = strRawContents.split["\n"];
    alert["File " + oFrame.src + " has " + arrLines.length + " lines"];
    for [var i = 0; i < arrLines.length; i++] {
        var curLine = arrLines[i];
        alert["Line #" + [i + 1] + " is: '" + curLine + "'"];
    }
}

1.

Đã trả lời ngày 30 tháng 11 năm 2018 lúc 3:08Nov 30, 2018 at 3:08

Don Kirkbydon KirkbyDon Kirkby

50K25 Huy hiệu vàng197 Huy hiệu bạc278 Huy hiệu đồng25 gold badges197 silver badges278 bronze badges

Chỉ là một điểm nhỏ, tôi thấy một số câu trả lời bằng cách sử dụng bên trong. Tôi đã giải thích với một ý tưởng tương tự nhưng quyết định không quá, trong phiên bản mới nhất React, quá trình tương tự hiện được gọi là DangerouryInnerHTML, vì bạn đang cho khách hàng của mình vào hệ điều hành của mình bằng cách trình bày HTML trong ứng dụng. Điều này có thể dẫn đến các cuộc tấn công khác nhau cũng như các nỗ lực tiêm SQL

Đã trả lời ngày 23 tháng 9 năm 2020 lúc 12:48Sep 23, 2020 at 12:48

Bạn cần kiểm tra trạng thái 0 [như khi tải các tệp cục bộ với XMLHTTPREQUEST, bạn không nhận được trạng thái và nếu nó từ máy chủ web, nó sẽ trả về trạng thái]

function readTextFile[file] {
var rawFile = new XMLHttpRequest[];
rawFile.open["GET", file, false];
rawFile.onreadystatechange = function []
{
    if[rawFile.readyState === 4]
    {
        if[rawFile.status === 200 || rawFile.status == 0]
        {
            var allText = rawFile.responseText;
            alert[allText];
        }
    }
}
rawFile.send[null];
}

Đối với tệp thiết bị, hãy sử dụng việc sử dụng điều này:

readTextFile["file:///C:/your/path/to/file.txt"];

Để đọc tệp từ sử dụng máy chủ:

readTextFile["//test/file.txt"];

Đã trả lời ngày 18 tháng 10 năm 2017 lúc 6:05Oct 18, 2017 at 6:05

Rahil Alirahil AliRahil Ali

93910 Huy hiệu bạc25 Huy hiệu Đồng10 silver badges25 bronze badges

1

Tôi thực sự nghĩ rằng bạn sẽ đi về điều này theo cách sai lầm. Cố gắng tải xuống và phân tích tệp văn bản A +3MB là hoàn toàn điên rồ. Tại sao không phân tích tệp ở phía máy chủ, lưu trữ kết quả viva một orm vào cơ sở dữ liệu [sự lựa chọn của bạn, SQL là tốt nhưng nó cũng phụ thuộc vào dữ liệu khóa nội dung hoạt động tốt hơn trên một cái gì đó như CouchDB] sau đó sử dụng AJAX để phân tích dữ liệu phân tích dữ liệu trên đầu khách hàng.

Thêm vào đó, một ý tưởng thậm chí còn tốt hơn sẽ bỏ qua tệp văn bản hoàn toàn để có hiệu suất tốt hơn nếu có thể.

Đã trả lời ngày 26 tháng 12 năm 2010 lúc 13:55Dec 26, 2010 at 13:55

1

JavaScript có thể đọc tệp máy chủ không?

Một tệp văn bản trên máy chủ có thể được đọc với JavaScript bằng cách tải xuống tệp với Fetch / XHR và phân tích phản hồi của máy chủ dưới dạng văn bản. Lưu ý rằng tệp cần phải trên cùng một miền. Nếu tệp nằm trên một miền khác, thì các tiêu đề phản hồi CORS thích hợp phải có mặt.. Note that the file needs be on the same domain. If the file is on a different domain, then proper CORS response headers must be present.

Làm thế nào để bạn đọc một tệp trong javascript?

Để đọc một tệp, hãy sử dụng Filereader, cho phép bạn đọc nội dung của một đối tượng tệp vào bộ nhớ.Bạn có thể hướng dẫn Filereader đọc một tệp dưới dạng bộ đệm mảng, URL dữ liệu hoặc văn bản.// Kiểm tra xem tệp là một hình ảnh.use FileReader , which enables you to read the content of a File object into memory. You can instruct FileReader to read a file as an array buffer, a data URL, or text. // Check if the file is an image.

JavaScript có thể truy cập các tệp cục bộ không?

Trình duyệt web [và JavaScript] chỉ có thể truy cập các tệp cục bộ với quyền người dùng.Để chuẩn hóa quyền truy cập tệp từ trình duyệt, W3C đã xuất bản API tệp HTML5 vào năm 2014. Nó xác định cách truy cập và tải lên các tệp cục bộ với các đối tượng tệp trong các ứng dụng web.can only access local files with user permission. To standardize the file access from the browser, the W3C published the HTML5 File API in 2014. It defines how to access and upload local files with file objects in web applications.

Làm cách nào để mở một tệp văn bản trong JavaScript?

Dưới đây là ví dụ đơn giản để đọc tệp văn bản bằng JavaScript ...
chức năng đọc [].
var txtfile = new xmlhttprequest [] ;.
txtfile.onReadyStateChange = function [].
if [txtfile.ReadyState === 4].
// Đảm bảo tài liệu đã sẵn sàng để phân tích ..

Bài Viết Liên Quan

Chủ Đề