Công cụ thành viên

Công cụ trang web


programming4:class:upload

Khác biệt

Đây là những khác biệt giữa hai phiên bản của trang.

Liên kết đến bản xem so sánh này

Phiên bản trước của cả hai bênPhiên bản trước
Phiên bản sau
Phiên bản trước
programming4:class:upload [2020/11/02 08:57] – [Tải file từ máy tính] hoaquynhtim99programming4:class:upload [2020/11/09 09:49] (hiện tại) vuthao
Dòng 1: Dòng 1:
 ====== Hướng dẫn chi tiết cách sử dụng class Upload để tải file lên hệ thống ====== ====== Hướng dẫn chi tiết cách sử dụng class Upload để tải file lên hệ thống ======
  
-Class upload là lớp có chứa các chức năng tải file lên hệ thống. File tải lên có thể từ máy tính hoặc một file trên internet+Class upload là lớp có chứa các chức năng tải file lên hệ thống. File tải lên có thể từ máy tính hoặc một file trên internet
 + 
 +Một số lưu ý khi sử dụng upload các bạn xem tại video: https://www.youtube.com/watch?v=B-mMzpL8BLw
  
 ===== Chuẩn bị ===== ===== Chuẩn bị =====
Dòng 65: Dòng 67:
   * Điều kiện ''$nv_Request->isset_request('submit', 'post')'' để kiểm tra sự kiện submit form   * Điều kiện ''$nv_Request->isset_request('submit', 'post')'' để kiểm tra sự kiện submit form
   * Điều kiện ''isset($_FILES, $_FILES['uploadfile'], $_FILES['uploadfile']['tmp_name']) and is_uploaded_file($_FILES['uploadfile']['tmp_name'])'' để kiểm tra có file tải lên hợp lệ.   * Điều kiện ''isset($_FILES, $_FILES['uploadfile'], $_FILES['uploadfile']['tmp_name']) and is_uploaded_file($_FILES['uploadfile']['tmp_name'])'' để kiểm tra có file tải lên hợp lệ.
 +
 +**Tiến hành lưu file tải lên:**
  
 Sau khi kiểm tra xong, tiến hành lưu file tải lên bằng các lệnh sau Sau khi kiểm tra xong, tiến hành lưu file tải lên bằng các lệnh sau
Dòng 163: Dòng 167:
   * ''img_info'' là mảng một chiều chứa thông tin ảnh nếu file tải lên là ảnh, đây là kết quả của hàm [[https://www.php.net/manual/en/function.getimagesize.php|getimagesize]]   * ''img_info'' là mảng một chiều chứa thông tin ảnh nếu file tải lên là ảnh, đây là kết quả của hàm [[https://www.php.net/manual/en/function.getimagesize.php|getimagesize]]
  
 +Lập trình viên căn cứ vào biến ''$upload_info'' để xử lý cho ứng dụng của mình.
  
 ==== Tải file trên internet ==== ==== Tải file trên internet ====
 +
 +=== Chuẩn bị form tải lên ===
 +
 +Trong file tpl ở hướng dẫn bên trên bổ sung thêm một nút gửi file từ internet như sau:
 +
 +<code html>
 +<div class="form-group">
 +    <label>Remote File:</label>
 +    <input type="text" class="form-control" name="remotefile">
 +</div>
 +<input class="btn btn-primary" name="submitremote" type="submit" value="{LANG.save}" />
 +</code>
 +
 +=== Lập trình để tải file về ===
 +
 +Trong file php như bên trên, dùng code nhận diện có thông tin gửi lên của người dùng ví dụ như sau:
 +
 +<code php>
 +if ($nv_Request->isset_request('submitremote', 'post')) {
 +    $remotefile = $nv_Request->get_string('remotefile', 'post', '');
 +    if (!empty($remotefile)) {
 +        //
 +    }
 +}
 +</code>
 +
 +Với code đó, nếu có thông tin gửi lên thì địa chỉ file ở biến ''$remotefile''
 +
 +**Xử lý lưu file**
 +
 +Dùng đoạn code như sau:
 +
 +<code php>
 +// Khởi tạo Class upload
 +$upload = new NukeViet\Files\Upload($admin_info['allow_files_type'], $global_config['forbid_extensions'], $global_config['forbid_mimes'], NV_UPLOAD_MAX_FILESIZE, NV_MAX_WIDTH, NV_MAX_HEIGHT);
 +
 +// Thiết lập ngôn ngữ, nếu không có dòng này thì ngôn ngữ trả về toàn tiếng Anh
 +$upload->setLanguage($lang_global);
 +
 +// Lưu file trên internet về server
 +$upload_info = $upload->save_urlfile($remotefile, NV_UPLOADS_REAL_DIR, false, $global_config['nv_auto_resize']);
 +</code>
 +
 +Cách viết hoàn toàn tương tự như hướng dẫn lưu file từ máy tính bên trên, chỉ khác:
 +  * Thay phương thức ''save_file'' bằng ''save_urlfile''.
 +  * Thay ''$_FILES['uploadfile']'' bằng ''$remotefile''.
 +
 +Kết quả trả về lưu vào biến ''$upload_info'' cũng có nội dung tương tự như cách lưu file từ máy tính bên trên.
 +
 +==== Sử dụng module quản lý File ====
 +
 +Khai báo html
 +<code html>
 +// thẻ input text đường dẫn file
 +<input class="w300 form-control pull-left" type="text" name="image" id="image" value="{DATA.image}" style="margin-right: 5px"/>
 +
 +// thẻ input text tiêu đề file
 +<input class="w300 form-control" type="text" name="imagealt" id="imagealt" value="{DATA.imagealt}"/>
 +
 +// button gọi tới module Quản lý file
 +<input type="button" value="Browse server" name="selectimg" class="btn btn-info"/>
 +</code>
 +
 +Javascript gọi module quản lý file
 +<code javascript >
 +$("input[name=selectimg]").click(function() {
 + var area = "image"; //id của thẻ input lưu đường dẫn file
 + var alt = "imagealt"; //id của thẻ input lưu tiêu đề file
 + var path = '{NV_UPLOADS_DIR}/{MODULE_UPLOAD}'; //uploads/sample
 + var type = "image"; // kiểu định dạng cho phép upload
 +                var currentpath = '{NV_UPLOADS_DIR}/{MODULE_UPLOAD}/2020'; //uploads/sample/2020
 +
 + nv_open_browse(script_name + "?" + nv_name_variable + "=upload&popup=1&area=" + area + "&alt=" + alt + "&path=" + path + "&type=" + type + "&currentpath=" + currentpath, "NVImg", 850, 420, "resizable=no,scrollbars=no,toolbar=no,location=no,status=no");
 +
 + return false;
 + });
 +</code>
 +
 +===== Code mẫu =====
 +
 +Tham khảo toàn bộ module trong hướng dẫn này tại đây {{ :programming4:class:nv4_module_samples_upload.zip |}}
  
programming4/class/upload.1604282265.txt.gz · Sửa đổi lần cuối: 2020/11/02 08:57 bởi hoaquynhtim99