Cách upload file bằng PHP CURL là vấn đề được nhiều lập trình viên quan tâm, bởi những kiến thức trên trường lớp là không đủ, vì vậy bài Cách upload file bằng PHP CURL sẽ chia sẻ tới bạn nhiều thông tin hữu ích
Mọi người vẫn hỏi tôi về việc học lập trình nói chung và PHP nói riêng có cần năng khiếu hay quá khó để tiếp cận hay không. Thì tôi có thể trả lời rằng, học lập trình cũng như việc bạn học tiếng Anh hay bất kỳ một ngôn ngữ khác, bởi lập trình...là ngôn ngữ của máy tính, để máy tính đọc và máy tính thực hiện theo yêu cầu của mình, bạn thích là học được.
Qua 4 bài vừa rồi bạn thấy CURL khá là hay phải không nào? Thật ra thì học tới bài này là bạn đã rành nó rồi đấy, nhưng mình muốn đưa ra thật nhiều ví dụ nên trong bài này chúng ta sẽ xây dựng chức năng upload file với PHP CURL nhé.
Để upload file trong php chúng ta thực hiện ba thao tác:
upload.php
để upload filecurl.php
sử dụng CURL để gọi đến file upload.phpform.php
trong đó có một form upload và có thuộc tính enctype="multipart/form-data"
và action của nó trỏ đến file curl.php
Để rõ hơn các bạn xem sơ đồ dưới đây:
Nhìn vào sơ đồ bạn thấy hơi khác so với thông thường phải không nào, thông thường thì chúng ta chỉ cần 2 file thôi đó là file form.php và upload.php. Nhưng ở đây chúng ta đang sử cụng PHP CURL để upload file nên phải thông qua quy trình như sơ đồ vậy.
<html> <head> <title>File Upload Using PHP and cURL - hoidapcode.com</title> </head> <body> <form action="curl.php" method="post" enctype="multipart/form-data"> <table border="1"> <tr> <td>Upload</td> <td><input name="file" type="file" id="file"/></td> </tr> <tr> <td> </td> <td><input name="btnUpload" type="submit" value="Upload" /></td> </tr> </table> </form> </body> </html>
// Nếu submit form if (isset($_POST['btnUpload'])) { // Lấy thông tin file upload $filename = $_FILES['file']['name']; $filedata = $_FILES['file']['tmp_name']; $filesize = $_FILES['file']['size']; // Nếu file OK if ($filedata != '') { $headers = array("Content-Type:multipart/form-data"); // Đối với filedata phải có ký hiệu @ ở trước $postfields = array("filedata" => "@$filedata", "filename" => $filename); // Khởi tạo CURL // URL trỏ đến file upload.php $ch = curl_init('http://localhost/2_develop/tour/upload.php'); // Cấu hình có sử dụng header // Vì chúng ta đang gửi file nên header của nó // phải ở dạng Content-Type:multipart/form-data curl_setopt($ch, CURLOPT_HEADER, true); curl_setopt($ch, CURLOPT_HTTPHEADER, $headers); // Cấu hình sử dụng method POST curl_setopt($ch, CURLOPT_POST, 1); curl_setopt($ch, CURLOPT_POSTFIELDS, $postfields); // Thiết lập có gửi file và thông tin file curl_setopt($ch, CURLOPT_INFILESIZE, $filesize); // Cấu hình return curl_setopt($ch, CURLOPT_RETURNTRANSFER, true); // Thực thi curl_exec($ch); // Nếu không tồn tại lỗi nào trong CURL if(!curl_errno($ch)) { $info = curl_getinfo($ch); if ($info['http_code'] == 200){ echo 'Upload thành công'; } } else { echo curl_error($ch); } // Đóng CURL curl_close($ch); } else { echo 'Bạn chưa chọn file để upload'; } }
// Đường dẫn upload $uploadpath = "upload/"; // Nhận thông tin $filedata = $_FILES['filedata']['tmp_name']; $filename = $_POST['filename']; if ($filedata != '' && $filename != ''){ // Dùng hàm copy để lưu vào thay vì hàm move_upload_file như thông thường copy($filedata,$uploadpath.$filename); }
copy
chứ không phải hàm move_upload_file
nhé.Lời kếtCác bạn chạy file form.php lên và thực hiện upload thử xem có được không, hy vọng là được. Cũng khá là đơn giản phải không nào, bài này chỉ mang tính chất học tập, làm bài tập để rành thư viện CURL hơn thôi, chúc các bạn học tốt nhé.
Hy vọng với bài viết về Cách upload file bằng PHP CURL đã giải đáp giúp bạn phần nào về kiến thức lập trình PHP. Như tôi đã nói, ngôn ngữ lập trình không quan trọng bằng tư duy giải thuật, tư duy logic để giải quyết vấn đề.
Với những năm trước đây, lập trình viên là một cái nghề khó và kén chọn người học, đồng nghĩa với việc thu nhập hàng tháng của các lập trình viên luôn cao. Còn những năm gần đây, thì lập trình là môn học phổ thông, và ai cũng nên học một ngôn ngữ lập trình nào đó.
Nếu bạn còn bất kỳ câu hỏi nào trong việc học lập trình online, hãy gửi yêu cầu cho tôi qua email hoidapcode.com@gmail.com hoặc để lại comment bên dưới, tôi sẽ giải đáp trong vòng 24 giờ!
Blog hoidapcode.com là blog được tổng hợp tự động các bài học, thông tin về lập trình trên mạng internet. Nếu bạn có ý kiến hoặc đóng góp về bài viết này, hãy liên hệ với tôi!