Hướng dẫn javascript save file on server-side - javascript lưu tệp ở phía máy chủ

Bạn phải có tập lệnh phía máy chủ để xử lý yêu cầu của mình, nó không thể được thực hiện bằng JavaScript.

Để gửi dữ liệu thô mà không cần uriencoding hoặc thoát các ký tự đặc biệt đến PHP và lưu nó dưới dạng tệp ____99 mới, bạn có thể gửi yêu cầu AJAX bằng phương thức

if[!empty[$_POST['data']]]{
$data = $_POST['data'];
$fname = mktime[] . ".txt";//generates random name

$file = fopen["upload/" .$fname, 'w'];//creates new file
fwrite[$file, $data];
fclose[$file];
}
0 và
if[!empty[$_POST['data']]]{
$data = $_POST['data'];
$fname = mktime[] . ".txt";//generates random name

$file = fopen["upload/" .$fname, 'w'];//creates new file
fwrite[$file, $data];
fclose[$file];
}
1 như:

JS:

var data = new FormData[];
data.append["data" , "the_text_you_want_to_save"];
var xhr = [window.XMLHttpRequest] ? new XMLHttpRequest[] : new activeXObject["Microsoft.XMLHTTP"];
xhr.open[ 'post', '/path/to/php', true ];
xhr.send[data];

PHP:

if[!empty[$_POST['data']]]{
$data = $_POST['data'];
$fname = mktime[] . ".txt";//generates random name

$file = fopen["upload/" .$fname, 'w'];//creates new file
fwrite[$file, $data];
fclose[$file];
}

Edit:

Như Florian đã đề cập dưới đây, không cần phải dự phòng XHR vì

if[!empty[$_POST['data']]]{
$data = $_POST['data'];
$fname = mktime[] . ".txt";//generates random name

$file = fopen["upload/" .$fname, 'w'];//creates new file
fwrite[$file, $data];
fclose[$file];
}
1 không được hỗ trợ trong các trình duyệt cũ hơn [trình duyệt formdata compatibiltiy], vì vậy bạn có thể khai báo biến XHR là:

var xhr = new XMLHttpRequest[];

Ngoài ra, xin lưu ý rằng điều này chỉ hoạt động cho các trình duyệt hỗ trợ

if[!empty[$_POST['data']]]{
$data = $_POST['data'];
$fname = mktime[] . ".txt";//generates random name

$file = fopen["upload/" .$fname, 'w'];//creates new file
fwrite[$file, $data];
fclose[$file];
}
1 như IE +10.

Chào mừng bạn đến với một hướng dẫn về cách tạo và lưu các tệp trong JavaScript. Vâng, đây sẽ là một quá trình phức tạp cho người mới bắt đầu. Để giữ cho mọi thứ đơn giản-lưu các tệp trên các nodej phía máy chủ là một cách dễ dàng, nhưng thật khó để lưu trực tiếp các tệp ở phía máy khách vì các hạn chế bảo mật. Điều đó nói rằng, có nhiều phương pháp chúng ta có thể sử dụng.

Các cách có thể để tạo và lưu các tệp trong JavaScript là:

  1. Sử dụng thư viện có tên FileSaver -
    if[!empty[$_POST['data']]]{
    $data = $_POST['data'];
    $fname = mktime[] . ".txt";//generates random name
    
    $file = fopen["upload/" .$fname, 'w'];//creates new file
    fwrite[$file, $data];
    fclose[$file];
    }
    
    4
  2. Tạo một đối tượng Blob và cung cấp một tiết kiệm của người Viking.
    • if[!empty[$_POST['data']]]{
      $data = $_POST['data'];
      $fname = mktime[] . ".txt";//generates random name
      
      $file = fopen["upload/" .$fname, 'w'];//creates new file
      fwrite[$file, $data];
      fclose[$file];
      }
      
      5
    • if[!empty[$_POST['data']]]{
      $data = $_POST['data'];
      $fname = mktime[] . ".txt";//generates random name
      
      $file = fopen["upload/" .$fname, 'w'];//creates new file
      fwrite[$file, $data];
      fclose[$file];
      }
      
      6
    • if[!empty[$_POST['data']]]{
      $data = $_POST['data'];
      $fname = mktime[] . ".txt";//generates random name
      
      $file = fopen["upload/" .$fname, 'w'];//creates new file
      fwrite[$file, $data];
      fclose[$file];
      }
      
      7
    • if[!empty[$_POST['data']]]{
      $data = $_POST['data'];
      $fname = mktime[] . ".txt";//generates random name
      
      $file = fopen["upload/" .$fname, 'w'];//creates new file
      fwrite[$file, $data];
      fclose[$file];
      }
      
      8
  3. Tải dữ liệu, lưu nó trên máy chủ.
    • if[!empty[$_POST['data']]]{
      $data = $_POST['data'];
      $fname = mktime[] . ".txt";//generates random name
      
      $file = fopen["upload/" .$fname, 'w'];//creates new file
      fwrite[$file, $data];
      fclose[$file];
      }
      
      9
    • var xhr = new XMLHttpRequest[];
      
      0
    • var xhr = new XMLHttpRequest[];
      
      1
  4. Tạo một luồng tệp có thể ghi.
    • var xhr = new XMLHttpRequest[];
      
      2
    • var xhr = new XMLHttpRequest[];
      
      3
    • var xhr = new XMLHttpRequest[];
      
      4
    • var xhr = new XMLHttpRequest[];
      
      5
  5. Trong NodeJS, chỉ cần sử dụng mô -đun hệ thống tệp -
    var xhr = new XMLHttpRequest[];
    
    6

Điều đó bao gồm những điều cơ bản, nhưng chúng ta hãy đi qua các ví dụ chi tiết trong hướng dẫn này - đọc tiếp!

Tôi đã bao gồm một tệp zip với tất cả các mã nguồn ví dụ khi bắt đầu hướng dẫn này, vì vậy bạn không phải sao chép mọi thứ, hoặc nếu bạn chỉ muốn đi thẳng vào.

Slide nhanh

MỤC LỤC

Tải xuống & ghi chú

Thứ nhất, đây là liên kết tải xuống đến mã ví dụ như đã hứa.

Ghi chú nhanh

Nếu bạn phát hiện ra một lỗi, hãy bình luận bên dưới. Tôi cũng cố gắng trả lời các câu hỏi ngắn, nhưng đó là một người so với toàn bộ thế giới, nếu bạn cần câu trả lời khẩn cấp, vui lòng kiểm tra danh sách các trang web của tôi để nhận trợ giúp lập trình.

Mã hóa ví dụ Tải xuống

Nhấn vào đây để tải xuống & nbsp; mã nguồn, tôi đã phát hành nó theo giấy phép MIT, vì vậy hãy thoải mái xây dựng trên đó hoặc sử dụng nó trong dự án của riêng bạn.

Được rồi, bây giờ chúng ta hãy đi vào các cách khác nhau để lưu các tệp trong JavaScript.

Phương pháp 1] Sử dụng trình bảo vệ tệp

1-filesaver.js





 

// [B] "SAVE AS"
var myFile = new File[["CONTENT"], "demo.txt", {type: "text/plain;charset=utf-8"}];
saveAs[myFile];

Cảm ơn trời, một người đã làm tất cả những công việc khó khăn. Đây là một trong những cách trình duyệt chéo dễ nhất và an toàn nhất của người Viking để lưu tệp-

  1. Đơn giản chỉ cần tải & nbsp; ____ ____ 27 từ CDN.
  2. Tạo đối tượng ________ 28 & nbsp; và bật nó vào & nbsp; ________ 29.

Phương pháp 2] Tạo tệp từ Blob & Force Tải xuống

2-blob-download.html

// [A] CREATE BLOB OBJECT
var myBlob = new Blob[["CONTENT"], {type: "text/plain"}];

// [B] CREATE DOWNLOAD LINK
var url = window.URL.createObjectURL[myBlob];
var anchor = document.createElement["a"];
anchor.href = url;
anchor.download = "demo.txt";
    
// [C] "FORCE DOWNLOAD"
// NOTE: MAY NOT ALWAYS WORK DUE TO BROWSER SECURITY
// BETTER TO LET USERS CLICK ON THEIR OWN
anchor.click[];
window.URL.revokeObjectURL[url];
document.removeChild[anchor];

Do các hạn chế bảo mật, JavaScript phía máy khách không thể truy cập trực tiếp hệ thống tệp. Đó là, không có văn bản trực tiếp và tải các tệp trên máy tính của người dùng. Nhưng đây là cách làm vòng xoay - tạo một đối tượng Blob [nhị phân] để chứa tất cả dữ liệu, sau đó đặt liên kết tải xuống cho nó.

Phương pháp 3] Tải Blob lên máy chủ

JavaScript

3a-blob-upload.html


function blobajax [] {
  // [A] CREATE BLOB OBJECT
  var myBlob = new Blob[["CONTENT"], {type: "text/plain"}];

  // [B] FORM DATA
  var data = new FormData[];
  data.append["upfile", myBlob];

  // [C] AJAX UPLOAD TO SERVER
  fetch["3b-upload.php", {
    method: "POST",
    body: data
  }]
  .then[[res] => { return res.text[]; }]
  .then[[txt] => { console.log[txt]; }];
}

PHP

3b-blob-upload.php

Bài Viết Liên Quan

Chủ Đề