Tải tệp lên từ url php

Xin chào. Đây là Ray Villalobos và chào mừng bạn đến với View Source. Trong tập này, chúng ta sẽ xây dựng một trình tải lên hình ảnh bằng PHP. Vì vậy, nếu bạn muốn thu hút khán giả của mình và cho phép mọi người tải tệp lên trang web của bạn, thì đã đến lúc Xem nguồn. Hãy nói một chút về thiết lập của chúng tôi. Chúng ta sẽ sử dụng PHP, một công nghệ phía máy chủ, có nghĩa là bạn phải làm việc trên một máy chủ phân tích các tệp PHP. Vì vậy, lần này tôi đang làm việc trên một máy chủ trực tiếp, không phải trên máy cục bộ của tôi. Trong máy chủ trực tiếp của chúng tôi, chúng tôi có một số tệp, một số tệp khá bình thường. Chúng tôi có một thư mục hình ảnh với một vài hình ảnh bình thường cộng với một chỉ mục. tập tin php. Bất cứ khi nào bạn đang làm việc với PHP, bạn muốn sử dụng. phần mở rộng php. Chúng tôi cũng đã tải một bản sao của jQuery, cũng như một biểu định kiểu và hiện tại chúng tôi có một số tệp trống, các tệp hiển thị. php và tải lên. php mà chúng ta sẽ xây dựng trong bộ phim này. Chúng tôi cũng có một thư mục tải lên sẽ chứa ảnh mà mọi người tải lên trang web của chúng tôi. Vì vậy, nhìn vào chỉ số. php, tôi sẽ mở nó trong Trình soạn thảo văn bản của mình. Tôi sẽ nhấp vào nó và nhấp vào Chỉnh sửa, tôi đang sử dụng Cyberduck ở đây. Một trong những điều độc đáo về biểu mẫu là thuộc tính mới này được gọi là enctype. Vì vậy, enctype là loại mã hóa cho biểu mẫu cụ thể này. Thông thường, các biểu mẫu được gửi qua web dưới dạng tệp văn bản. Khi ai đó đang tải lên một tệp bình thường, chúng tôi không muốn chuyển mã dữ liệu, vì vậy chúng tôi phải yêu cầu biểu mẫu sử dụng loại mã cụ thể này, multipart/form-data. Ngoài ra, phương thức cho biểu mẫu này là POST. Khi bạn đang sử dụng tài liệu rất dài như tệp, bạn muốn đảm bảo rằng bạn sử dụng phương thức POST vì phương thức GET chỉ có thể chứa rất nhiều ký tự. Sau đó, chúng ta có nhãn cũng như loại đầu vào và loại đầu vào này khác với bình thường, là loại tệp. Tệp loại đầu vào sẽ cung cấp cho bạn một hộp thoại nơi bạn có thể chọn một tệp từ máy tính của mình. Ngoài ra, đây là một biểu mẫu đơn giản, vì vậy điều tiếp theo chúng ta cần làm là xây dựng trình tải lên tệp của mình. Vì vậy, nếu bạn để ý, chúng tôi sẽ gửi biểu mẫu này tới một tập lệnh có tên là tải lên. php, vì vậy chúng ta sẽ cần xây dựng phần tiếp theo. Để làm điều đó, tôi sẽ quay lại Cyberduck và nhấp vào tải lên. php và mở tệp đó lên. Hiện tại đây chỉ là một tệp trống, vì vậy chúng tôi sẽ lấy mã từ tệp đoạn mã của chúng tôi tại đây, sao chép và dán mã vào đây và để tôi xem qua mã này làm gì. Khi ai đó gửi biểu mẫu, thông tin được chuyển đến tài liệu này là dữ liệu tệp được trình duyệt chuyển qua. Từ dữ liệu tệp, chúng tôi có thể lấy một vài biến và những gì chúng tôi đang làm ở đây là lấy một tên tạm thời vì khi một tệp được tải lên từ một phần tử biểu mẫu, nó sẽ được đặt ở một vị trí tạm thời và nó được đặt ở vị trí này . Vì vậy, một vài điều chúng ta có thể lấy từ đây là tên tạm thời mà tệp sẽ được đặt bên dưới, cũng như tên của tệp đã được tải lên. Vì vậy, nếu chúng tôi tải tệp này có tên là burrito. jpg, đó sẽ là tên của tệp. Thêm vào đó, tôi sẽ tạo một biến đặc biệt có tên là ngày đã lưu lưu trữ phiên bản của ngày hôm nay cùng với thời gian, để bất cứ khi nào ai đó tải ảnh lên, chẳng hạn như burrito. jpg và ai đó đến sau và tải lên cùng một ảnh, hai ảnh đó sẽ có tên khác nhau. Họ sẽ có văn bản cho ngày hôm nay, cùng với tên burrito. jpg. Bằng cách đó, nhiều tệp có thể được tải lên trang web mà không gặp sự cố. Bây giờ chúng ta cần nghĩ ra một tên tệp mới vì chúng ta sẽ sử dụng một tên khác với tên ban đầu của tệp. Chúng tôi cũng đang sử dụng thư mục con để lưu trữ các tệp này, vì vậy chúng tôi nghĩ ra tên tệp mới là tải lên/, sau đó tên của tệp đã được lưu, cũng như tên tệp tải lên, đây chỉ là tên thông thường mà mọi người sử dụng . Cuối cùng, chúng ta sẽ sử dụng lệnh move_ uploaded_file và gửi nó đến tên tạm thời của tệp cũng như tên tệp mới. Và nếu chức năng đó thực thi đúng cách, thì nó sẽ in ra rằng tệp đã được tải lên. Vì vậy, hãy để tôi lưu cái này và quay lại biểu mẫu của chúng tôi. Vì vậy, tôi sẽ nhấn Chọn tệp ngay tại đây để hiển thị Trình quản lý tệp của tôi và trên màn hình nền, hãy tìm ảnh burrito của tôi và tôi sẽ nhấn Chọn, sau đó nhấn nút Gửi và bạn có thể thấy nó nói . Nếu tôi quay lại chương trình FTP của mình và mở thư mục tải lên, tôi có thể phải làm mới, nhưng tôi có thể thấy tệp ở đó và nhận thấy rằng nó đã thêm ngày cũng như dấu thời gian vào bánh burrito của chúng tôi. tên jpg, thật tuyệt. Vì vậy, trình tải lên của chúng tôi đang hoạt động khá tốt, thậm chí không có nhiều mã khó. Không có cách nào để biết trên trang web của chúng tôi rằng một tệp đã được tải lên. Cách duy nhất mà chúng tôi có thể tìm ra ngay bây giờ là kiểm tra thông qua một chương trình FTP trên máy chủ của chúng tôi. Vì vậy, thật tuyệt nếu có một số loại phản hồi để cho chúng tôi biết rằng tệp đã được tải lên đúng cách. Vì vậy, những gì tôi sẽ làm là tôi sẽ quay lại trang này và tôi muốn thêm một bản sao của bức ảnh trên trang này sau khi nó được tải lên. Vì vậy, để làm điều đó, tôi sẽ quay lại đoạn mã của mình và tôi sẽ thêm một div vào trang của mình để tôi có thể chèn các hình ảnh đã được tải lên. Vì vậy, tôi sẽ sao chép cái này và quay lại tệp chỉ mục của mình. Ngay bây giờ, chúng tôi đang tải lên. php, tôi đã làm xong việc đó, vì vậy tôi sẽ đóng nó lại và chuyển về chỉ mục của mình. php, chỉnh sửa nó và tôi sẽ thêm nó sau phần tử biểu mẫu. Tôi sẽ chỉ thêm một trình giữ chỗ để chúng ta có thể đưa ảnh tải lên vào đó. Vì vậy, điều tiếp theo tôi cần làm là thực sự viết một kịch bản sẽ hiển thị cho chúng tôi những bức ảnh trong thư mục đó. Nếu bạn nhớ lại từ tuần thứ mười, chúng tôi đã tạo một kịch bản thực hiện chính xác điều đó. Tập lệnh cho phép bạn tạo HTML từ nội dung của thư mục. Vì vậy, tôi có một phiên bản sửa đổi một chút của tập lệnh đó trong tệp đoạn mã của chúng tôi và nó trông như thế này. Đây là tập lệnh giống như danh sách các tệp có phim PHP mà chúng tôi đã tạo trước đó, vì vậy tôi sẽ sao chép nó và mở các tệp tải lên của chúng tôi. trang php và dán mã đó vào đó. Điều duy nhất mà chúng tôi đã thay đổi ở đây là vì chúng tôi đang gọi thư mục này là tải lên, tôi đã thay đổi tên của thư mục đang mở và thẻ hình ảnh được cho là gì. Ngoài ra, đây chính xác là cùng một mã. Vì vậy, tôi sẽ tiết kiệm nó, và tôi sẽ thoát khỏi nó. Và nếu tôi truy cập trang web của mình và nhập showuploads. php, tôi có thể thấy rằng ảnh burrito mà tôi đã tải đã hiển thị ở đó. Sẽ thật tuyệt nếu kéo nó vào trang gốc của tôi, vì vậy tôi sẽ làm điều đó với một phần của jQuery. Điều đó có nghĩa là tôi cần tải thư viện jQuery cũng như viết một tập lệnh nhỏ sẽ hiển thị các nội dung tải lên trên trang gốc này. Vì vậy, tôi sẽ lấy kịch bản ngay tại đây. Điều này cũng tương tự với một bài học khác mà tôi đã chỉ cho bạn trước đó về cách tải nội dung từ trang này sang trang khác. Vì vậy, tôi sẽ đi vào chỉ mục của tôi. php một lần nữa, hãy mở nó lên và tôi sẽ thêm tập lệnh đó ở dưới cùng, ngay trước thẻ đóng body. Tập lệnh này tải một bản sao của jQuery AJAX từ CDN của Google, cũng như một bản sao cục bộ trong trường hợp tôi đang làm việc ngoại tuyến. Và sau đó, nó chỉ đơn giản là một chức năng sẵn sàng cho tài liệu, nghĩa là bất cứ khi nào DOM tải, hãy thực thi chức năng này và tất cả những gì nó làm là lấy trang showuploads rồi đưa nội dung trên trang đó vào trang này. Nó sẽ ẩn nó và làm mờ nó sau 500 mili giây, vì vậy sẽ có một chút mờ dần. Nhưng ngoài ra, đó là mã khá đơn giản. Vì vậy, tôi sẽ lưu nó, và tôi sẽ quay lại trang này và chỉ cần tải lại, và bây giờ bạn có thể thấy rằng trang này đang tải, nhưng ngoài ra, nó còn tải nội dung từ các phần tải lên. php chỉ đơn giản là đọc thư mục chứa tất cả ảnh được tải lên và cho chúng tôi biết có gì trong đó. Nếu tôi tải lên một bức ảnh khác ngay bây giờ và tôi nhấn nút Gửi, tôi vẫn được đưa đến trang khác có nội dung Đã tải tệp lên. Nếu tôi muốn xem ảnh của mình, tôi phải nhấp vào nút quay lại và làm mới trang này và xem ảnh mới ở đó. Vì vậy, tôi cần tìm cách quay lại trang này sau khi ảnh đã được người tải lên của chúng tôi tải lên. Vì vậy, tôi sẽ làm điều đó với một đoạn mã khác, vì vậy tôi sẽ sửa đổi một chút trình tải lên của mình bằng cách thêm vị trí của nơi sẽ đến bất cứ khi nào quá trình xử lý hoàn tất. Tôi sẽ sao chép phiên bản mã này, phiên bản mã này rất giống với phiên bản trước. Vì vậy, tôi sẽ nhấp vào tệp tải lên đó và nhấn Chỉnh sửa và chỉ cần dán phiên bản mới. Bạn có thể thấy rằng sự khác biệt duy nhất là thay vì in ra một thông báo đã tải lên tệp, chúng tôi đang sử dụng phương thức tiêu đề để báo cho trang web biết rằng vị trí của trang này phải là trang kia. Vì vậy, điều này sẽ làm là nó sẽ tải lên tệp chỉ mục có thành phần biểu mẫu cũng như danh sách tất cả ảnh của chúng tôi. Vì vậy, tôi sẽ lưu ảnh đó, quay lại biểu mẫu này và tôi sẽ nhấn Chọn tệp để chọn ảnh khác. Cái mà tôi chưa chọn là cái muỗng. jpg thì mình chọn cái đó, ấn nút Gửi nó sẽ gửi form. Chuyển đến trình xử lý biểu mẫu, nó sẽ báo cho nó biết sau khi ảnh được tải lên để quay lại trang này. Trang này hiển thị các hình ảnh được cập nhật và chúng tôi có thể thấy ngay một số phản hồi từ những gì chúng tôi đã làm. Vì vậy, nếu bạn cuộn xuống, bạn có thể thấy những bức ảnh khác vẫn ở đó và đó là một trình tải lên hình ảnh tuyệt vời. Chia sẻ là một phần của trải nghiệm trực tuyến, vì vậy đừng quên rằng đôi khi đối với một trang web, nhận lại tốt hơn là cho đi. Và điều chỉnh lại vào lần tới cho một tập khác của Xem nguồn

Làm cách nào để tải tệp lên từ URL trong PHP?

Tải lên tệp PHP – Cách đơn giản .
hành động = "tệpUploadScript. .
method="post" – Điều này cho biết hành động của trình duyệt mà biểu mẫu sẽ sử dụng khi gửi tệp đến máy chủ (đối với tải lên, đây hầu như luôn là hành động POST, đôi khi là PUT)
enctype="multipart/form-data" – Điều này xác định loại nội dung mà biểu mẫu gửi

Làm cách nào để tải lên hình ảnh bằng URL trong PHP?

Tạo biểu mẫu HTML .
<. LOẠI TÀI LIỆU html>
Chọn hình ảnh để tải lên
.
.

Làm cách nào để sử dụng các tệp $ _ trong PHP?

Biến toàn cục được xác định trước $_FILES là một mảng kết hợp chứa các mục được tải lên qua phương thức HTTP POST. Tải lên một tệp yêu cầu biểu mẫu phương thức HTTP POST với thuộc tính enctype được đặt thành nhiều phần/biểu mẫu dữ liệu. $_FILES['file']['name'] - Tên ban đầu của tệp sẽ được tải lên .

Làm cách nào để tạo một tệp có thể tải xuống bằng PHP?

PHP cho phép bạn tải xuống tệp dễ dàng bằng hàm readfile() tích hợp. Hàm readfile() đọc một tệp và ghi nó vào bộ đệm đầu ra. .
tiêu đề ('Loại nội dung. ứng dụng/octet-stream');
tiêu đề ("Mã hóa chuyển nội dung. utf-8");