PHP file upload - xây dựng code upload file hướng thủ tục

Thảo luận trong 'PHP & MySQL' bắt đầu bởi Lê Xuân Thành, 15/12/11.

  1. Lê Xuân Thành

    Lê Xuân Thành Staff Member

    Tuần tới thầy đi dự PHPday ở Hà Nội nên cả lớp được nghĩ, mình ở nhà từ ôn bài nên vừa học vừa post lên đây để mọi người tham khảo, có gì trao đổi để hoàn thiện và tối ưu code.

    Hôm nay ôn lại bài PHP file upload
    Mình sẽ xây dựng code này theo 2 hướng: hướng thủ tục và hướng đối tượng (tạm thời viết bài hướng thủ tục trước đã)

    Trước khi bắt đầu mọi người cũng nên biết qua thế nào là hướng thủ tục và hướng đối tượng nhỉ!
    - Lập trình hướng thủ tục: là cách lập trình để giải quyết vấn đề nào đó theo yêu cầu đưa ra và nó đi theo hướng giải quyết từng bước một đến khi đạt được kết quả. Kiểu lập trình hướng thủ tục còn được gọi là kiểu lập trình từ trên xuống hoặc lập trình theo hàm (function). Khi sử dụng kiểu lập trình này chúng ta không xây dựng sẵn các hàm xử lý mà chỉ tạo ra hàm khi gặp một vấn đề nào đó.
    - Lập trình hướng đối tượng: là kiểu lập trình dựa trên một nền tảng các lớp đã được xây dựng sẵn. Nghĩa là chúng ta phải xác định trước những gì sẽ phải làm, những trường hợp sẽ xảy ra để xây dựng lớp có những chức năng cần thiết cho quá trình xây dựng ứng dụng.

    Bắt đầu nào.....
    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:
    <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:
    HTML:
    <?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:
    HTML:
    <?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 ở đính kèm

    Xem bài tiếp theo tại đây: http://joomlaviet.info/forum/php-mysql/1105-php-file-upload-xay-dung-code-upload-file-huong-doi-tuong.html

    Các file đính kèm:

    lenguyenquochieu, nguyethp89popochacha20 thích bài này.
  2. lenguyenquochieu

    lenguyenquochieu Thành viên mới

    xin chào bạn
    mình vừa xem qua bài viết của bạn và rất hứng thú. hiện tại mình đang xây dựng một trang web nhạc nhưng mà sao mình dùng code của bạn thì ko thể up được đuôi nhạc (ví dụ .mp3, ...) nếu bạn biết về vấn đề này xin chỉ giúp
    xin cảm ơn
  3. JOOservices

    JOOservices Thành viên


    Mã:
    $extent_file="gif|jpg|png";
    Tuy nhiên mình có ý sau
    # Do mình đang code trên Joomla! nên có thể sử dụng API Joomla! cho thuận tiện . Như
    JFile để check / filter externsion
    # JRequest để lấy requests

    v..v ..

    Thank you,
    Viet Vu
    Lê Xuân Thành thích bài này.
  4. NhapMonPHP

    NhapMonPHP Thành viên mới

    bạn đó dùng dòng này $extent_file="gif|jpg|png"; kiểm tra chỉ có đuôi gif ,jpg và png nó mới nhận muốn up được thì đổi điều kiện là được
    Lê Xuân Thành thích bài này.
  5. kenhlike06

    kenhlike06 Thành viên mới

    [​IMG]


    Dịch vụ tăng người xem LiveStream Facebook là dịch vụ tăng số người đang xem video của bạn khi livestream. Tăng người xem LiveStream giúp cho cá nhân, doanh nghiệp, ca sĩ, diễn viên, người nổi tiếng... tăng sự tin tưởng sản phẩm, dịch vụ của mình với khách hàng, đối tác, fan hâm mộ.

    Tăng người xem livestream giúp người bán tạo uy tín, sự tin tưởng, tạo hiệu ứng đám đông và giữ khách hàng, fan hâm mộ xem lâu hơn. Ngoài ra khi live của bạn có nhiều người xem thì cơ hội đưa video livestream lên đề xuất. Lúc đó, view thật tăng từ vài trăm đến vài nghìn người xem.

    Hãy tưởng tượng khi bạn livestream mà có vài người đang xem hoặc không có ai xem bạn sẽ mất tự tin khi "lên hình". Hãy để chúng tôi giúp bạn tự tin hơn khi sử dụng dịch vụ tăng người xem livestream của chúng tôi!

    Lợi ích khi sử dụng dịch vụ tăng người xem livestream facebook

    • Giúp bạn tự tin hơn khi Live Stream
    • Tạo sự chú ý với hàng mới, giúp bạn giữ khách hàng xem lâu hơn
    • Tạo uy tín, sự tin tưởng của khách hàng với sản phẩm của bạn
    • Tạo ấn tượng tốt với đối tác, khách hàng, fan.
    Lý do bạn nên sử dụng dịch vụ tăng người xem LiveStream của Kênh Like
    • Uy tín: Đó là yếu tố hàng đầu mà dịch vụ Kênh Like có được và được hàng trăm khách hàng khen ngợi
    • Chất lượng: Dịch vụ Kênh Like luôn cam kết về chất lượng người xem LiveStream là người dùng thật, 100% người Việt nam, hoặc có thể là người nước ngoài theo yêu cầu của quý khách
    • Nhanh chóng: Thực hiện ngay các yêu cầu của quý khách khi quý khách đặt hàng
    • An toàn: Người xem LiveStream là các tài khoản facebook thật và tự nhiên nên an toàn tuyệt đối cho facebook của bạn, không bị giảm số lượng người xem trong thời gian bạn mua.
    • Hiệu quả: Tăng người xem video LiveStream giúp bạn tạo được niềm tin, uy tín, sự tin tưởng. Đặc biệt khi có lượng người xem nhiều cơ hội LiveStream của bạn được lên đề xuất LiveStream của facebook là rất cao, khi đó sẽ càng có nhiều khách hàng vào xem, giúp bạn tăng doanh số bán hàng, tăng fan cho người nổi tiếng
    • Bảo mật: Dịch vụ Kênh Like cam kết không tiết lộ bất kỳ thông tin nào của quý khách
    • Giá rẻ nhất: Dịch vụ Kênh Like trực tiếp nhận và làm cho quý khách nên cắt bỏ được các khâu trung gian

    Xem báo giá dịch vụ tăng người xem livestream: http://fb.kenhlike.com/dich-vu-tang-nguoi-xem-video-livestream-facebook.html

    Hãy sử dụng dịch vụ tăng người xem LiveStream Facebook của chúng tôi để cảm nhận sự khác biệt!

    Thông tin liên hệ:
    Hotline: 0983 439 103 (Zalo)
    Web: http://fb.kenhlike.com http://dichvufacebook.vn
    FB: https://fb.com/dieukc

    Từ khóa tìm kiếm:

    tăng người xem khi livestream, tut tăng mắt khi livestream, hack livetream fb, cách tăng view cho livetream, pm tăng lượt xem livetream, cách hack lượt xem livestream, hack luot xem livestream, tăng view livestream, tăng view livestream facebook, tool tăng view livestream, hack người xem video facebook, tăng mắt live stream, hack live stream facebook, mua người xem livestream

Chia sẻ trang này