Không phải chuyên gia nhưng tôi đã thử và có ví dụ phù hợp với bạn. Bạn đã không cung cấp đủ thông tin trong câu hỏi của bạn, vì vậy tôi sẽ bắt đầu từ đầu.
Tôi đã theo dõi github repo chính thức và các mẫu được cung cấp và tôi phải thực hiện một số chỉnh sửa để lưu các tập tin được lưu trong một thư mục cụ thể, sau đó tinh chỉnh thêm các đoạn đó lại với nhau và tinh chỉnh nhiều hơn để xóa các phần không cần thiết sau đó. Rõ ràng tất cả những điều chỉnh này đều là những gợi ý được cung cấp trong mã, và những nơi khác mà tôi đã duyệt. Xuất hiện flow.js cũng đang sử dụng một cơ chế tương tự (không hoàn toàn chắc chắn).
Tôi về cơ bản cần thay đổi app.js
trong một trong các mẫu để có thể tải lên tệp từ trình duyệt và sau đó lưu chúng cục bộ.
- đèo vị trí thư mục để resumable nơi các khối tập tin nên được bổ sung
- Cung cấp điều kiện và các lệnh cần thiết để khi khối được tải lên, bạn tạo một dòng ghi và sau đó sử dụng resumable để khâu các khối với nhau và lưu chúng dưới dạng tệp gốc.
- Cuối cùng xóa tất cả các khối
Hướng dẫn sử dụng gist để có được sự đồng ý ứng dụng làm việc (bạn có thể kiểm tra các mẫu github chính thức và thực hiện thay đổi hoặc bạn có thể làm theo hướng dẫn dưới đây):
- Tạo thư mục
- Tạo app.js, resumable.js và resumable-node.js từ gist trong thư mục
- sao chép/dán
package.json
và cài đặt npm để nhận các module (hoặc bằng tay npm install
những express
, path
, fs
, connect-multiparty
)
- tạo
uploads
thư mục trong thư mục ứng dụng chính và chắc chắn rằng nó là có thể ghi
- Copy/quá khứ
public
thư mục từ here chứa icons
theo hình thức các tệp .png và style.css
và index.html
để tải lên
- Thay đổi giá trị
target
trong dòng 49
hoặc 50
của chỉ mục.html trong thư mục công cộng bạn chỉ cần sao chép vào địa chỉ máy chủ của bạn trong trường hợp của tôi http://localhost:3000/upload
- Bạn có thể chỉnh kích cỡ đoạn, số lượng tải lên đồng thời, vv trong index.html nhưng, tôi để chúng ở chế độ mặc định (trên thực tế, tôi đã thay đổi các đoạn từ 3 đến 4)
- Xong tất cả những điều trên, khi đó bạn tốt.
- Chạy ứng dụng tức là nodemon app.js hoặc nút app.js
- Navigate to địa chỉ máy chủ của bạn hoặc http://localhost:3000/upload và bạn sẽ thấy những index.html render như hình dưới đây:
bên dưới giao diện điều khiển log (chú ý cuối cùng -. khối loại bỏ)
Một cuối cùng tôi có image2.jpg
trong thư mục tải lên.
TL; DR
Bạn cần chỉnh sau vào app.js và file index.html để có thể tải lên và lưu tập tin được tải lên thông qua Resumable.js.
index.html đã được tinh chỉnh để thay đổi giá trị mục tiêu để trỏ nó đến url máy chủ trong trường hợp của tôi http://localhost:3000/upload
var r = new Resumable({
target:'http://localhost:3000/upload',
chunkSize:1*1024*1024,
simultaneousUploads:4,
testChunks:false,
throttleProgressCallbacks:1
});
app.js đã được tinh chỉnh để gửi resumable
một thư mục nơi để lưu tập tin (trên cùng nhất).
var resumable = require('./resumable-node.js')(__dirname + "/uploads");
Tôi cũng chỉnh app.js thay đổi nội dung của app.post('/uploads',...)
thấy gist.
// Handle uploads through Resumable.js
app.post('/upload', function(req, res){
resumable.post(req, function(status, filename, original_filename, identifier){
if (status === 'done') {
var stream = fs.createWriteStream('./uploads/' + filename);
//stich the chunks
resumable.write(identifier, stream);
stream.on('data', function(data){});
stream.on('end', function(){});
//delete chunks
resumable.clean(identifier);
}
res.send(status, {
// NOTE: Uncomment this funciton to enable cross-domain request.
//'Access-Control-Allow-Origin': '*'
});
});
});
Và tinh chỉnh cuối cùng cuối cùng để các app.js là xử lý tuyến đường cuối cùng, các tập tin sau đây
s.createReadStream("./resumable.js").pipe(res);
Tôi di chuyển các resumable.js tập tin vào thư mục tương tự như những người khác, vì vậy Tôi cần phải tinh chỉnh thay đổi vị trí của nó để createReadStream tìm thấy nó.
Bất kỳ ví dụ github nào cũng sẽ tuyệt vời .. – Nodedeveloper101
Ok, chính tệp đó nằm trong 'req.files.file' ... Vì vậy, tôi có biến javascript thats một tệp .. var file = req.files.file; .... làm cách nào để lưu biến này dưới dạng tệp vào một thư mục cụ thể trên máy chủ của tôi? – Nodedeveloper101
Tôi đã tìm ra cách viết các tệp .txt vào máy chủ bằng 'fs'. Vì vậy, tôi có thể ghi các tập tin vào máy chủ. Và tôi có thể console.log() dữ liệu về tập tin. Nhưng không thể tìm ra đối tượng nào tôi phải chuyển vào fs.writeFile (tên tệp, tệp, gọi lại) thực sự là tệp ... ngay bây giờ nó chỉ lưu [đối tượng đối tượng] – Nodedeveloper101