Trong bài học trước,
chúng ta đã tìm hiểu về cách thức
hỗ trợ tải lên tệp thông qua phương pháp tiếp cận dữ liệu đa nền tảng.
Trong bài tập này, chúng tôi sẽ sử dụng mô-đun Multer,
mà chúng tôi đã đề cập trong bài giảng để cho phép máy chủ thể hiện của chúng tôi
để hỗ trợ tải lên các tập tin hình ảnh vào trang web máy chủ của chúng tôi.
Họ sẽ lưu trữ các tập tin hình ảnh này vào thư mục công công/hình ảnh.
Hình ảnh này sẽ hữu ích trong ứng dụng của chúng tôi khi chúng tôi cung cấp
hình ảnh cho các món ăn khác nhau hoặc các radar hoặc các chương trình khuyến mãi,
mà chúng tôi đã xây dựng trong máy chủ REST API của chúng tôi.
Để bắt đầu với bài tập này,
bước đầu tiên của tất nhiên,
là cài đặt mô-đun Multer vì vậy tại dấu nhắc loại npm cài đặt
multer trừ lưu và tại thời điểm này tôi đang sử dụng multer 1.3.1 trong khóa học này.
Vì vậy, một khi chúng tôi đã cài đặt mô-đun multer, chúng
ta hãy đi đến dự án của chúng tôi và sau đó thực hiện một tuyến đường mới cho phép chúng tôi tải lên các tập tin.
Đi vào dự án trong thư mục route,
chúng ta hãy thêm một tệp mới có tên upload router.js.
Bộ định tuyến này, bộ định tuyến nhanh mà chúng tôi sẽ thực hiện ở đây,
là bộ định tuyến sẽ hỗ trợ việc tải lên các tập tin.
Vì vậy, trong bộ định tuyến tải lên cho phép tôi chỉ cần đi đến
bộ định tuyến đĩa và sao chép những điều đầu tiên từ bộ định tuyến đĩa
vì chúng tôi đang khá nhiều sẽ thiết lập
cấu trúc tương tự trong ứng dụng của chúng tôi hoặc bộ định tuyến tải lên.
Vì vậy, để tôi sao chép phần đó và sau đó chúng tôi sẽ chỉnh sửa nó.
Vì vậy, trong bộ định tuyến tải lên,
tôi không cần mongoose vì vậy tôi sẽ loại bỏ mongoose và tôi cũng không cần các món ăn.
Vì vậy, hai người sẽ được gỡ bỏ và sau đó
chúng ta cần phải thể hiện phân tích cú pháp cơ thể và xác thực.
Bây giờ, tôi sẽ yêu cầu mô-đun multer ở đây.
Một khi chúng tôi bao gồm các mô-đun multer,
bây giờ router này tôi sẽ gọi đây là bộ định tuyến tải lên.
Vì vậy, sẽ nói bộ định tuyến tải lên sử dụng bộ phân tích cơ thể và
sau đó điều này nhưng bộ định tuyến tải lên và một lần nữa,
hãy nhớ để nói mô-đun xuất khẩu, bộ định tuyến tải lên ở đây.
Vì vậy, đối với tuyến đường bộ định tuyến tải lên,
chúng ta cần thêm các phương pháp khác nhau.
Tôi sẽ làm điều đó một chút sau đó nhưng trước đó chúng ta hãy thiết lập
multer để cho phép chúng tôi tải lên các tập tin.
Bây giờ, theo mặc định, multer có thể được thiết lập bằng cách sử dụng multer trong ứng dụng của chúng
tôi, nhưng tôi sẽ làm một số cấu hình của multer trong
bài tập này
để chúng tôi sẽ tùy chỉnh cách multer xử lý việc tải lên các tập tin.
Vì vậy, để sử dụng multer,
một trong những tùy chọn mà multer mất là cho lưu trữ.
Vì vậy, multer cung cấp chức năng lưu trữ đĩa này
cho phép chúng tôi xác định công cụ lưu trữ và ở đây chúng tôi có thể cấu hình một vài điều.
Bây giờ, nếu nó chỉ là một vấn đề của cấu hình đích,
bạn chỉ có thể nói dấu hai chấm dest,
và sau đó chỉ định thư mục đích trong đó các tập tin tải lên sẽ được lưu trữ.
Nhưng ở đây tôi sẽ làm một số cấu hình thêm cho mô-đun multer ở đây.
Vì vậy, đây là nơi tôi sẽ sử dụng hỗ trợ lưu trữ đĩa multer.
Bên trong bộ nhớ đĩa,
tôi có thể xác định một vài tùy chọn ở đây.
Các tùy chọn mà tôi sẽ xác định sẽ là
đích và thứ hai là tên tập tin.
Vì vậy, hai cấu hình mà tôi sẽ cung cấp cho bộ nhớ đĩa.
Điểm đến như bạn mong đợi,
cho phép tôi cấu hình điểm đến và điều này mất
như một cấu hình ở đây một chức năng ở đây.
Vì vậy, đích được cấu hình như một chức năng ở đây.
Chức năng này sẽ nhận được yêu cầu và cũng là một đối tượng được gọi là tập
tin, chứa thông tin về tập tin
đã được xử lý bởi multer và cũng là một chức năng gọi lại.
Vì vậy, cb là hàm callback.
Vì vậy, ở đây cho đích,
tôi sẽ nói cb null,
tham số thứ hai là thư mục đích,
có thể được thể hiện dưới dạng một chuỗi nơi các tập tin sẽ được lưu trữ.
Vì vậy, ở đây, tôi sẽ cung cấp điểm đến như là hình ảnh gạch chéo công cộng.
Bởi vì trong bài tập này, tôi sẽ hỗ trợ tải lên hình ảnh.
Vì vậy, đó là phần mà tôi sẽ chỉ định ở đây, vì vậy tải lên hình ảnh.
Vì vậy, hàm gọi lại như bạn thấy có hai tham số.
Đầu tiên là, tất nhiên,
lỗi mà trong trường hợp này tôi sẽ đặt nó thành
null và thứ hai là thư mục đích,
nơi hình ảnh của tôi sẽ được lưu trữ.
Vì vậy, tôi có thể cấu hình điều đó bằng cách nói hình ảnh gạch chéo công cộng.
Vì vậy, trong thư mục hình ảnh,
các tập tin mà tôi tải lên sẽ lưu trữ.
Đối với tên tập tin cũng,
nó nhận được ba tham số,
yêu cầu tin nhắn, tập tin và chức năng gọi lại.
Từ việc cấu hình cách gọi hàm gọi lại,
chúng ta có thể chỉ định thông tin về tên tệp.
Vì vậy, đối với chức năng callback tôi sẽ nói cb null và không có lỗi ở đây.
Sau đó, thứ hai nhấn mạnh vào tên tập tin,
đó là sẽ được sử dụng cho các tập tin cụ thể vừa được tải lên,
làm thế nào nó sẽ được lưu trữ.
Vì vậy, đối tượng tập tin này mà tôi thu được ở đây,
hỗ trợ một tập hợp các thuộc tính trên đó.
Một trong những thuộc tính được gọi là, tên gốc.
Vì vậy, tên gốc về cơ bản,
cung cấp cho chúng ta tên gốc của tập tin từ phía khách hàng đã được tải lên.
Tôi nhấn mạnh rằng, khi tệp được lưu ở phía máy chủ,
tệp sẽ được cung cấp chính xác
cùng tên với tên gốc của tệp đã được tải lên.
Vì vậy mà tôi có thể biết rằng tôi đang tải lên
chính xác cùng một tập tin và ở phía máy chủ khi
tập tin được tải lên sẽ được lưu trữ với cùng tên.
Bây giờ, nếu bạn không cấu hình này sau đó,
multer theo mặc định sẽ cung cấp cho một số chuỗi ngẫu nhiên
như tên của tập tin không có phần mở rộng.
Vì vậy, đó có thể không phải là một cái gì đó mà bạn sẽ hài lòng khi
sử dụng trong bài tập đặc biệt này.
Vì vậy, đó là lý do tại sao tôi rõ ràng cấu hình nói rằng,
các tập tin nên được lưu trữ với tên ban đầu của tập tin đã được tải lên.
Chúng ta sẽ một lần nữa gặp phải đối tượng tập tin này
một chút chi tiết hơn và xem cách chúng
ta có thể sử dụng thông tin từ đối tượng tập tin một chút sau đó.
Ngoài ra, tôi cũng có thể chỉ định một bộ lọc tập tin ở đây cho cấu hình multers.
Bộ lọc tệp sẽ cho phép tôi xác định loại tệp nào
tôi sẵn sàng tải lên hoặc tôi sẵn sàng chấp nhận tải lên.
Vì vậy, để làm điều này, tôi sẽ thiết lập một chức năng khác gọi là
bộ lọc tập tin hình ảnh const
và điều này tôi sẽ xác định chức năng trong một phút.
Bây giờ, đối với điều này, tôi cũng có thể lưu này như là
lưu trữ const bởi vì chúng tôi đã sử dụng const cho tất cả mọi thứ
, vì vậy, tôi sẽ chỉ nói lưu trữ const.
Đối với bộ lọc tập tin hình ảnh,
tôi sẽ nói bộ lọc tập tin hình ảnh const.
Một lần nữa, nó nhận được ba tham số yêu cầu
, đối tượng, đối tượng tập tin có chứa thông tin về
các tập tin đã được tải lên và chức năng gọi lại ở đây.
Thông qua chức năng gọi lại,
tôi sẽ truyền thông tin trở lại cấu hình multer của tôi cho
phép tôi xác định làm thế nào tôi sẽ lưu trữ thông tin này.
Vì vậy, đây sẽ là một chức năng mũi tên ở đây.
Bên trong chức năng mũi tên này những gì tôi sẽ kiểm tra là,
Tôi sẽ nói nếu không tập tin tên ban đầu phù hợp.
Vì vậy, tên ban đầu là một chuỗi ở đây.
Vì vậy, tôi đang cố gắng để xem nếu có một trận đấu cho chuỗi đó bằng cách nói,
bên trong đây một biểu thức chính quy.
Vì vậy, biểu thức chính quy tôi sẽ chỉ định nó như dấu
gạch chéo, dấu gạch chéo ngược và sau đó,
các tùy chọn mà tôi sẽ chỉ định là jpg
hoặc jpeg hoặc
png hoặc gif.
Vì vậy, đó là cách tôi chỉ định biểu thức chính quy ở đó.
Để nói rằng okay,
nếu phần mở rộng của tập tin chứa jpg hoặc jpeg hoặc png hoặc gif,
sau đó tôi sẽ coi đó như một tập tin hình ảnh và tôi sẽ sẵn sàng chấp nhận những tập tin đó.
Vì vậy, đó là những gì chúng tôi đang thử nghiệm ở đây.
Nếu đó là trường hợp,
đó là nếu phần mở rộng tập tin không phù hợp với bất kỳ trong số những điều này, vì vậy,
đó là lý do tại sao chúng ta thấy không sau đó chúng ta sẽ nói, trả lại cb.
Sau đó, nhận thấy rằng, các cb tham số đầu tiên sẽ là một lỗi.
Vì vậy, tôi sẽ trả lại một lỗi mới cho
biết bạn chỉ có thể tải lên các tập tin hình ảnh.
Vì vậy, chúng tôi nhấn mạnh rằng các tập tin duy nhất mà họ sẽ
chấp nhận là các tập tin hình ảnh và tham số thứ hai sẽ là sai.
Bởi vì chúng tôi đang cung cấp lỗi như tham số đầu tiên,
tham số thứ hai được đặt thành false.
Nếu không thì nói cb null đúng.
Vì vậy, có nghĩa là các tập tin đang cố gắng để được
tải lên phù hợp với mô hình và do đó Nó là một tập tin hình ảnh,
và vì vậy chúng tôi sẵn sàng để cho nó được tải lên.
Hai cấu hình mà chúng tôi sẽ cung cấp cho mô-đun multer đó.
Làm thế nào để chúng tôi cấu hình mô-đun multer để sử dụng trong ứng dụng của chúng tôi?
Đây là nơi tôi sẽ khai báo const upload
như multer và sau đó tôi sẽ chỉ định trong dấu ngoặc đơn rằng tùy chọn ở đây.
Tôi có thể chỉ định lưu trữ như là chức năng lưu trữ mà tôi vừa định nghĩa ở đây.
Chức năng lưu trữ này như là tham số đầu tiên,
và tham số thứ hai là một bộ lọc tập tin.
Một bộ lọc tập tin là một phương pháp cho phép tôi xác định
loại tập tin mà tôi sẵn sàng chấp nhận và sau đó tôi sẽ nói, bộ lọc tập tin hình ảnh.
Chỉ cần chuyển đổi gói từ,
để bạn có thể nhìn thấy toàn bộ dòng ở đây.
Vì vậy, nó nói rằng bạn chỉ có thể tải lên các tập tin hình ảnh và sau đó cho multer,
tôi đang cấu hình bộ lọc hình ảnh, đó là nó.
Module multer của tôi bây giờ được cấu hình để cho phép tôi tải lên các tập tin hình ảnh ở đây.
Sau đó, bây giờ chúng ta hãy tiếp tục và cấu hình bộ định tuyến tải lên.
Đối với bộ định tuyến tải lên,
tôi sẽ chỉ cho phép phương pháp bài ở đây.
Vì vậy, các
phương pháp lấy, đặt và xóa sẽ không được phép trên điểm cuối bộ định tuyến tải lên.
Để giúp tôi làm điều đó,
tôi sẽ đi đến bộ định tuyến đĩa và sau đó nhớ lại rằng chúng tôi đã đặt cấu hình ở đây đã.
Tôi sẽ sao chép điều đó và sau đó đến
bộ định tuyến tải lên và sau đó tôi sẽ dán thông tin đó ở đây.
Chúng tôi sẽ nói, nếu nó là một hoạt động get sau đó tôi sẽ không
hỗ trợ rằng trên điểm cuối sẽ là ImageUpload.
Việc nhận được sẽ không được phép,
và tương tự như đặt sẽ không được phép,
và cũng xóa sẽ không được phép.
Tôi sẽ không hỗ trợ bất kỳ hoạt động nào, vì vậy hãy đặt, xóa.
Ba người này sẽ không được phép.
Phương pháp duy nhất mà tôi sẽ hỗ trợ là phương pháp bài.
Đối với các bài phương pháp,
chúng tôi sẽ làm xác thực này tất cả các cách lên đến thời điểm đó.
Tôi sẽ chỉ sao chép điều đó trong đó,
đóng điểm cuối đó và cho bài đăng.
Khi một tập tin được đăng,
làm thế nào để chúng tôi xử lý bài đăng này?
Để xử lý bài viết ở đây,
tôi không cần tiếp theo cho việc này.
Bây giờ, ngoài việc xác thực VerifyUser và xác thực VerifyAdmin,
trên cùng một dòng tôi sẽ cấu hình tải lên.
Vì vậy, nhớ lại rằng tôi đã cấu hình tải lên bằng cách sử dụng multer ở đây.
Vì vậy, tôi sẽ sử dụng tải lên
hỗ trợ một chức năng gọi là upload.single.
Chức năng duy nhất này lấy làm tham số.
Tên của trường biểu mẫu trong đó xác định tập tin đó,
bạn sẽ thấy rằng trong một thời gian ngắn.
Trường biểu mẫu này tôi sẽ đặt tên nó là ImageFile ở đây.
Tải lên đơn có nghĩa là nó sẽ cho phép tôi tải lên chỉ một tập tin duy nhất ở đây.
Tập tin duy nhất đó sẽ chỉ định trong biểu mẫu tải lên từ phía khách hàng
trong biểu mẫu đa phần tải lên bằng cách sử dụng tên đó ở đó.
Khi tập tin thu được trong mã,
nếu tôi đi đến thời điểm này,
tải lên này sẽ chăm sóc xử lý các lỗi nếu có bất kỳ,
nếu tập tin không được tải lên đúng cách và vân vân.
Khi bạn đến thời điểm này,
tệp sẽ được tải lên thành công và
vì vậy bạn cần xử lý tệp đã tải lên.
Tại thời điểm này, chúng tôi sẽ nói res.StatusCode là
200 và sau đó res.SeTheader Content-Type,
'ứng dụng/json'. Những gì tôi sẽ làm ở đây là,
chúng tôi sẽ vượt qua trở lại đối tượng req.file này từ máy chủ trở lại khách hàng.
Đối tượng req.file này cũng sẽ chứa đường dẫn đến tập tin trong đó và đường dẫn đó có thể được
sử dụng bởi khách hàng để cấu hình bất kỳ
nơi nào mà nó cần phải biết vị trí của tập tin hình ảnh này.
Ví dụ, nếu bạn đang cố gắng tải lên một món ăn
lên phía máy chủ và các chi tiết của món ăn vào phía máy chủ,
bạn có thể tải lên hình ảnh lên máy chủ và sau đó
bạn lấy lại URL của hình ảnh đó và sau đó bạn có thể
bao gồm URL của hình ảnh đó vào đối tượng json mô tả các món ăn.
Sau đó tải lên tài liệu json món ăn lên phía máy chủ.
Sau đó, req.file được truyền lại cho khách hàng,
req.file như bạn sẽ thấy khi chúng ta chạy máy chủ này,
req.file chứa rất nhiều thông tin về
các tập tin vừa được tải lên và vì vậy tôi sẽ
kiểm tra rằng để có được thông tin về các tập tin mà tôi vừa tải lên.
Đây là cách chúng ta sẽ được cấu hình phương pháp bài có, đó là nó.
Bộ định tuyến tải lên của tôi đã sẵn sàng để chấp nhận tải lên của các tập tin.
Bây giờ, tất cả những gì tôi cần làm là đi đến app.js và sau đó cấu hình bộ định tuyến tải lên.
Vì vậy, đi đến app.js
Chúng tôi đã có tất cả các bộ định tuyến này.
Vì vậy, hãy để tôi chỉ cần sao chép LeaderRouter của họ và sau đó
cấu hình này như UploadRouter.
Vì vậy, đây là trong tập tin UploadRouter ở đây.
Vì vậy, chúng tôi sẽ cấu hình UploadRouter và sau đó đi xuống dưới đây,
bây giờ chúng tôi sẽ cấu hình điểm cuối ImageUpload.
Vì vậy, điểm cuối ImageUpload cho phép tôi tải lên các tập tin.
Vì vậy, đây sẽ là UploadRouter. Đó là nó.
Ứng dụng của tôi bây giờ được cấu hình để chấp nhận tải lên tệp.
Vì vậy, chúng ta hãy lưu các thay đổi và sau đó đi và xem ứng dụng của chúng tôi hoạt động như thế nào.
Quay trở lại Terminal,
bây giờ hãy chắc chắn rằng bạn có máy chủ MongoDB
của bạn lên và chạy trong một trong các tab Terminal hoặc trong một trong các lệnh Windows.
Trong cửa sổ khác,
chúng ta hãy khởi động máy chủ.
Một khi máy chủ của chúng tôi đang hoạt động và chạy,
chúng tôi sẽ truy cập Postman và sau đó gửi hoặc thay vì tải lên một tập tin từ Postman.
Vì vậy, như tôi đã đề cập,
để tải lên một tập tin,
bạn sẽ được sử dụng multipart/form-data.
Vì vậy, trước tiên, hãy để tôi đăng nhập vào bản thân mình.
Vì vậy, tôi sẽ làm một bài đăng trên người dùng địa phương đăng nhập,
và tôi sẽ đăng nhập bản thân mình với tư cách là quản trị viên bởi vì
chỉ có quản trị viên mới có thể tải lên các tập tin của họ ở đó.
Nhớ lại rằng máy chủ của bạn hiện đang chạy tại cổng an toàn.
Vì vậy, chúng tôi sẽ nói https://localhost:3443,
và không có ủy quyền ở đây.
Vì vậy, hãy để tôi tắt ủy quyền ở đây và sau đó gửi yêu cầu đến máy chủ.
Vì vậy, trong Postman, nếu điều này đang xảy ra,
rằng nó nói không thể nhận được bất kỳ phản hồi,
điều này là bởi vì bạn đang chạy máy chủ an toàn.
Vì vậy, trong trường hợp đó,
Postman sẽ không chấp nhận chứng chỉ tự ký đang đến.
Vì vậy, trong trường hợp đó, mở cài đặt ở đây và trong cài đặt,
trong trường cài đặt chung,
bạn sẽ thấy xác minh chứng chỉ SSL này.
Tắt tính năng đó để Postman của bạn sẵn sàng chấp nhận
chứng chỉ tự ký mà chúng tôi đã cài đặt ở phía máy chủ.
Vì vậy, đây là cách bạn sẽ có thể liên hệ với máy chủ của bạn tại
điểm cuối đăng nhập người dùng https://localhost:3443.
Vì vậy, khi chúng tôi cố gắng đăng nhập ngay bây giờ,
bây giờ bạn sẽ thấy rằng yêu cầu bài đăng của bạn đã được
chấp nhận thành công bởi máy chủ
và sau đó máy chủ trả lời với thông tin mã thông báo.
Vì vậy, một lần nữa, để đảm bảo rằng Postman cho phép bạn liên hệ với máy chủ an toàn,
hãy nhấp vào Cài đặt và dưới Chung,
tắt xác nhận chứng chỉ SSL.
Vì vậy, một khi bạn đăng nhập,
chúng ta hãy sao chép mã thông báo ở đây.
Vì vậy, tôi sẽ sao chép mã thông báo ở đây.
Bây giờ, chúng ta hãy thử tải lên tệp.
Để tải lên các tập tin, như bạn nhận thấy,
chúng ta cần phải tải lên tập tin này tại localhost:3443,
và điểm cuối là ImageUpload.
Để thực hiện ImageUpload ở đây,
trong Tiêu đề, chúng ta cần cấu hình ủy quyền.
Vì vậy, chúng tôi sẽ cấu hình ủy quyền,
và sau đó bạn sẽ nói,
“Người mang”, và cung cấp một mã thông báo mà chúng tôi đã thu được.
Vì vậy, giữ một bản sao của mã thông báo ở đâu đó và sao chép trong mã thông báo vào Tiêu đề.
Trong cơ thể, để tải lên một tập tin,
chúng tôi sẽ sử dụng dữ liệu hình thức này.
Vì vậy, đây là những gì cho phép bạn làm nhiều phần/hình thức dữ liệu ở đây.
Vì vậy, khi bạn nhấp vào biểu mẫu dữ liệu,
ở đây bạn có thể cung cấp tệp đó ở đây mà bạn muốn tải lên.
Vì vậy, khi bạn nhấp vào một phím mới ở đây,
sử dụng phím này như ImageFile.
Nhớ lại rằng khi chúng tôi cấu hình phương pháp bài đăng trên trang UploadRouter,
chúng tôi đã chỉ định nói tải lên đơn một ImageFile.
Vì vậy, đó là chìa khóa tương tự mà bạn sẽ sử dụng ở đây.
Sau đó, khi bạn đưa chìa khóa,
sau đó phần thứ hai,
bạn sẽ đặt điều này từ Text sang File ở đây.
Vì vậy, đây là những gì cho phép bạn chỉ định tệp làm giá trị cho khóa cụ thể này.
Vì vậy, sau đó bạn sẽ thấy nút này đến nói, “Chọn tệp”.
Vì vậy, bạn có thể mở và sau đó chọn một tập tin mà bạn muốn tải lên.
Vì vậy, ở đây, tôi sẽ đi đến tôi,
Tôi có một tập tin trong một trong các thư mục của tôi ở đây.
Vì vậy, tôi chỉ đi vào hình ảnh tài sản,
và sau đó chúng tôi sẽ chỉ tải lên một tập tin PNG từ đây.
Vì vậy, bạn có thể nói,
“Tải lên tệp cụ thể.”
Vì vậy, như bạn nhớ lại,
chúng tôi đã cấu hình máy chủ của chúng tôi để chỉ chấp nhận ImageFile.
Vì vậy, chúng tôi sẽ nói, “Tải lên tệp cụ thể đó.”
Sau đó, khi bạn nhấp vào nút Gửi,
vì vậy hãy lưu ý rằng trong cơ thể,
bạn phải cấu hình điều này với biểu mẫu dữ liệu.
Vì vậy, multipart/form-data, và sau đó chìa khóa là ImageFile,
và giá trị là tệp mà bạn vừa chọn,
và sau đó nhấp vào nút Gửi.
Vì vậy, khi bạn nhấp vào nút Gửi,
tập tin sẽ được tải lên phía máy chủ của bạn và
sau đó máy chủ sẽ trả lời lại với đối tượng này.
Vì vậy, đây là những gì được chứa trong
đối tượng req.file đó là có trên đối tượng yêu cầu ở đây.
Vì vậy, req.file này, như bạn thấy, chứa một tên trường.
Tên trường là ImageFile.
Vì vậy, chú ý rằng điều này là chính xác giống như cái này ở đây.
Tên gốc, do đó, lưu ý rằng biểu thức originalname chứa alberto.png,
đó là tập tin mà tôi tải lên.
Bây giờ bạn có thể thấy lý do tại sao khi tôi cấu
hình bộ nhớ và tên tập tin, tôi đặt file.originalname.
Vì vậy, đây là những gì sẽ được sử dụng ở đó.
Bạn có thể thấy loại mã hóa,
và mimetype, và đích,
thư mục tệp đã được đưa vào,
và đường dẫn thực tế của tệp ở đây, đường dẫn
tương đối từ thư mục gốc của thư mục máy chủ ở đây.
Vì vậy, đường dẫn này chỉ ra nơi tập tin có thể truy cập ở phía máy chủ.
Vì vậy, nếu bạn đang cấu hình các chi tiết của một món ăn hoặc một nhà lãnh đạo, ví dụ,
bạn chỉ cần sử dụng thuộc tính hình ảnh của nhà lãnh đạo để images/alberto.png.
Công cộng không nên được sử dụng anyway vì mục tin thư thoại công cộng là
một trong đó hoạt động như thư mục gốc cho máy chủ của chúng tôi.
Vì vậy, bạn chỉ cần cung cấp những hình ảnh này.alberto.
Vì vậy, từ đường dẫn này mà bạn có được,
một khi các tập tin được tải lên thành công,
trích xuất phần này và sau đó sử dụng nó cho hình ảnh trong
tài liệu JSON của bạn mô tả các nhà lãnh đạo cụ thể.
Vì vậy, đó là cách chúng tôi tải lên một tập tin.
Bây giờ, để thuyết phục các bạn rằng tiền phạt thực sự đã được tải lên, chúng
ta hãy đi đến dự án của chúng tôi.
Đi đến dự án của chúng tôi,
trong thư mục công cộng,
bây giờ bạn có thể thấy rằng có một thư mục con hình ảnh ở đó.
Trong thư mục con hình ảnh,
bạn có thể thấy tệp alberta.png được tải lên trong đó.
Bây giờ, chúng ta có thể tải thêm ImageFiles vào phía máy chủ của chúng tôi.
Bây giờ, nếu bạn cố gắng tải lên một tập tin phi ImageFile,
bạn sẽ thấy rằng máy chủ sẽ không chấp nhận
một tập tin phi ImageFile và sau đó sẽ trả lời lại rằng,
“Không thể chấp nhận tập tin phi ImageFile.”
Vì vậy, đây là cách chúng tôi sẽ cấu hình máy chủ thể hiện của chúng tôi
để chấp nhận tải lên của ImageFiles từ phía khách hàng của chúng tôi.
Với điều này, chúng tôi hoàn thành bài tập này.
Trong bài tập này, chúng ta đã thấy cách chúng ta sử dụng
mô-đun meta để cấu hình máy chủ thể hiện của chúng tôi để
chấp nhận tải lên tệp trên một điểm cuối API /ImageUpload Rest.
Khi chúng tôi đăng lên điểm cuối,
tệp sẽ được tải lên một thư mục được chỉ định trên trang web máy chủ.
Với điều này, chúng tôi hoàn thành bài tập này.
Đây là thời điểm tốt để bạn thực hiện một cam kết git với thông điệp 'file upload'.