[Share] code upload file trực tiếp lên Host

Thứ hai - 02/01/2017 23:32
Bước 1: Tạo 1 form để tải file lên
chắc hẳn mọi người đã biết tạo form rồi nhỉ, ai lười thì copy đoạn code này cho nhanh cũng được

Bước 1: Tạo 1 form để tải file lên
chắc hẳn mọi người đã biết tạo form rồi nhỉ, ai lười thì copy đoạn code này cho nhanh cũng được
<html>
<body>

<form action="xuly.php" method="post"
enctype="multipart/form-data">
<label for="file">Filename:</label>
<input type="file" name="file" id="file" /> 
<br />
<input type="submit" name="submit" value="Submit" />
</form>

</body>
</html>

Trong đoạn trên:
- action: gọi file xuly.php (ta sẽ xây dựng file này sau)
- enctype="multipart/form-data":yêu cầu dữ liệu kiểu nhị phân, nói đơn giản là upload file thì cần như vậy

Bước 2: Xây dựng file xuly.php
Trước tiên ta xem sau khi nhấn submit thì ta có được gì? Tạo file xuly.php với nội dung:
<?php
if ($_FILES["file"]["error"] > 0)
  {
  echo "Error: " . $_FILES["file"]["error"] . "<br />";
  }
else
  {
  echo "Upload: " . $_FILES["file"]["name"] . "<br />";
  echo "Type: " . $_FILES["file"]["type"] . "<br />";
  echo "Size: " . ($_FILES["file"]["size"] / 1024) . " Kb<br />";
  echo "Stored in: " . $_FILES["file"]["tmp_name"];
  }
?>

Sau khi nhấn submit thì ta sẽ có một mảng chứ thông tin về file sẽ up lên
 
  • $ _FILES ["File"] ["name"] : tên file upload
  • $ _FILES ["File"] ["type"] : kiểu file upload
  • $_FILES["file"]["size"] : kích thước file upload
  • $_FILES["file"]["tmp_name"] : đường dẫn lưu tạm file upload
  • $_FILES["file"]["error"] : lổi
Dựa vào các thông tin như trên ta sẽ đi xây dựng file xuly.php hoàn chỉnh như sau:
<?php
$file_name=$_FILES['upload']['name'];
$extent_file="gif|jpg|png";
$pattern='#.+\.(gif|jpg|png)$#i';
if(preg_match($pattern,$file_name)==1){
    $file_type=true;
}else{
    $file_type=false;
}
if($file_type==true){
    $source=$_FILES['upload']['tmp_name'];
    $dest='images/'.$_FILES['upload']['name'];
    if(copy($source,$dest)==true){
    $flag=true;
    echo 'Upload thành công';
    }else{
    $flag=false;
    echo 'Upload thất bại';
    }
}
?>

Trong đoạn code trên:
  • ban đầu ta sẽ lấy thông tin từ form: bằng cách đặt biến $file_name=$_FILES['upload']['name'];
  • tiếp theo là phần mở rộng của file upload.(Vì lý do bảo mật, bạn nên thêm các hạn chế trên những gì người dùng được phép tải lên.)
  • $pattern='#.+\.(gif|jpg|png)$#i'; dùng để lấy ra được phần mở rộng của file upload (trong code trên là gif|jpg|png)
  • để upload file lên server ta dùng copy($source,$dest) trong đó $source là nguồn, $dest là đích (upload lên thư mục images mà bạn cần tạo trước)
Về căn bản code upload chỉ có vậy. Nhưng chưa được tối ưu lắm, mọi người thảo luận tìm hướng tối ưu nhé!
tải về code ở đây: http://joomla.net.vn/attachments/879/
 

Nguồn tin: joomla.net.vn

Tổng số điểm của bài viết là: 10 trong 2 đánh giá

Xếp hạng: 5 - 2 phiếu bầu
Click để đánh giá bài viết

  Ý kiến bạn đọc

Bạn đã không sử dụng Site, Bấm vào đây để duy trì trạng thái đăng nhập. Thời gian chờ: 60 giây