Hướng dẫn how can i show uploaded files in php? - Làm cách nào để hiển thị các tệp đã tải lên trong php?

Tôi đang gặp một số vấn đề với việc tải lên các tệp từ HTML lên máy chủ web dựa trên PHP. Sau đây là mã HTML của tôi. Không có vấn đề ở đây tôi tin.

<html> <body> <form action="upload.php" method="post" enctype="multipart/form-data" action="2.2.2.cgi"> <input type="file" name="file" id="file" size="35"><br> <input type="submit" name="submit" id="submit" value="Submit"> </form> </body> </html>

Mã PHP:

<?php define ('MAX_FILE_SIZE', 1000000); $permitted = array('image/gif', 'image/jpeg', 'image/png', 'image/pjpeg', 'text/plain'); if ($_FILES['file']['type'] == $permitted && $_FILES['file']['size'] > 0 && $_FILES['file']['size'] <= MAX_FILE_SIZE) { move_uploaded_file($_FILES, $uploadedfile); echo ('<img src="'.$uploadedfile'" />'); } ?>

Tôi không thể tìm ra cách làm cho nó hoạt động trong PHP. Tôi đã thử nhiều cách khác nhau và mã trên chỉ là nỗ lực tuyệt vọng mới nhất của tôi trong việc tìm ra nó bằng cách cố gắng lưu trữ giá trị vào một biến mới. Những gì tôi muốn làm là như sau:

  • Hạn chế loại và kích thước của các tệp có thể được tải lên.
  • Tệp có phải là một hình ảnh không? Hiển thị hình ảnh.
  • Nó có phải là một tệp văn bản không? Hiển thị nội dung của tệp.
  • Nó có phải là một tập tin chưa được chứng minh? Hiển thị tên, loại và kích thước của tệp.

Bất kỳ loại gợi ý hoặc giúp đỡ bằng mọi cách sẽ được đánh giá rất cao. Cảm ơn!

PS. Nó không được phát hành, vì vậy bất kỳ vấn đề bảo mật nào cũng không liên quan.

Xin chào! Trong hướng dẫn này, hãy để tôi chỉ cho bạn về tải lên, xem và tải xuống tệp trong PHP và MySQL. Quá trình tải lên tệp tương tự như những gì chúng ta đã thảo luận ở đây, nhưng tập lệnh PHP này không chỉ tải tệp lên máy chủ mà còn lưu trữ đường dẫn tệp và ngày được tạo trong cơ sở dữ liệu MySQL. Ngoài việc tải lên tệp, nó cũng cung cấp cho bạn tùy chọn để xem tệp trên trình duyệt và tải xuống từ máy chủ.

Với PHP, bạn thực tế có thể tải lên bất kỳ loại tệp nào và tập lệnh tải lên tệp mà tôi đã chia sẻ dưới đây sẽ hoạt động cho tất cả các loại tệp như PDF, tài liệu, hình ảnh, MP3, video, kho lưu trữ zip, v.v. Chỉ cần bao gồm các phần mở rộng tệp đó trong quy trình lọc ( $allowed mảng) và bạn sẽ có thể tải lên chúng.

Cách tải lên, xem và tải xuống tệp trong PHP & MySQL?

Hãy chuyển sang phần mã hóa. Đầu tiên bạn nên tạo cơ sở dữ liệu MySQL để lưu trữ chi tiết tệp.

Tạo cơ sở dữ liệu MySQL:

CREATE DATABASE `demo` ; Use `demo`; CREATE TABLE IF NOT EXISTS `tbl_files` ( `id` int(9) NOT NULL AUTO_INCREMENT, `filename` varchar(255) NOT NULL, `created` datetime NOT NULL, PRIMARY KEY (`id`) ) ENGINE=MyISAM DEFAULT CHARSET=latin1 AUTO_INCREMENT=1;

Tiếp theo là tập lệnh kết nối cơ sở dữ liệu thiết lập kết nối với cơ sở dữ liệu MySQL từ PHP.

dbconnect.php

<?php //connect mysql database $host = "localhost"; $user = "username"; $pass = "password"; $db = "demo"; $con = mysqli_connect($host, $user, $pass, $db) or die("Error " . mysqli_error($con)); ?>

Sau đó, tạo index.php - Đây là tệp chính chứa giao diện người dùng. Nó có một biểu mẫu tải lên và bảng HTML để hiển thị danh sách các tệp được tải lên từ cơ sở dữ liệu cùng với các liên kết 'Xem' & 'Tải xuống' cho chúng.'View' & 'Download' links for them.

index.php

<?php include_once 'dbconnect.php'; // fetch files $sql = "select filename from tbl_files"; $result = mysqli_query($con, $sql); ?> <!DOCTYPE html> <html> <head> <title>Upload View & Download file in PHP and MySQL | Demo</title> <meta content="width=device-width, initial-scale=1.0" name="viewport" > <link rel="stylesheet" href="css/bootstrap.css" type="text/css" /> </head> <body> <br/> <div class="container"> <div class="row"> <div class="col-xs-8 col-xs-offset-2 well"> <form action="upload.php" method="post" enctype="multipart/form-data"> <legend>Select File to Upload:</legend> <div class="form-group"> <input type="file" name="file1" /> </div> <div class="form-group"> <input type="submit" name="submit" value="Upload" class="btn btn-info"/> </div> <?php if(isset($_GET['st'])) { ?> <div class="alert alert-danger text-center"> <?php if ($_GET['st'] == 'success') { echo "File Uploaded Successfully!"; } else { echo 'Invalid File Extension!'; } ?> </div> <?php } ?> </form> </div> </div> <div class="row"> <div class="col-xs-8 col-xs-offset-2"> <table class="table table-striped table-hover"> <thead> <tr> <th>#</th> <th>File Name</th> <th>View</th> <th>Download</th> </tr> </thead> <tbody> <?php $i = 1; while($row = mysqli_fetch_array($result)) { ?> <tr> <td><?php echo $i++; ?></td> <td><?php echo $row['filename']; ?></td> <td><a href="uploads/<?php echo $row['filename']; ?>" target="_blank">View</a></td> <td><a href="uploads/<?php echo $row['filename']; ?>" download>Download</td> </tr> <?php } ?> </tbody> </table> </div> </div> </div> </body> </html>

Lưu ý: Bản demo này sử dụng Twitter Bootstrap cho CSS StyleSheet.

Chạy index.php sẽ tạo một trang có biểu mẫu tải lên và bảng với các chi tiết tệp tương tự như thế này. Người dùng có thể nhấp vào liên kết 'Xem' để xem các tệp trên trình duyệt hoặc trên 'Tải xuống' để tải xuống các tệp từ máy chủ.

Cuối cùng, có tệp 'uploads.php' sẽ được thực thi khi biểu mẫu được gửi để tải lên tệp đã chọn. Đây là nơi chúng tôi thực sự tải tệp lên máy chủ từ máy khách và lưu tên của nó và tải ngày vào cơ sở dữ liệu.

Tải lên.Php

<?php //check if form is submitted if (isset($_POST['submit'])) { $filename = $_FILES['file1']['name']; //upload file if($filename != '') { $ext = pathinfo($filename, PATHINFO_EXTENSION); $allowed = ['pdf', 'txt', 'doc', 'docx', 'png', 'jpg', 'jpeg', 'gif']; //check if file type is valid if (in_array($ext, $allowed)) { // get last record id $sql = 'select max(id) as id from tbl_files'; $result = mysqli_query($con, $sql); if (count($result) > 0) { $row = mysqli_fetch_array($result); $filename = ($row['id']+1) . '-' . $filename; } else $filename = '1' . '-' . $filename; //set target directory $path = 'uploads/'; $created = @date('Y-m-d H:i:s'); move_uploaded_file($_FILES['file1']['tmp_name'],($path . $filename)); // insert file details into database $sql = "INSERT INTO tbl_files(filename, created) VALUES('$filename', '$created')"; mysqli_query($con, $sql); header("Location: index.php?st=success"); } else { header("Location: index.php?st=error"); } } else header("Location: index.php"); } ?>

Tập lệnh này tải lên tệp từ máy cục bộ lên máy chủ và lưu trữ các chi tiết của nó vào cơ sở dữ liệu và chuyển hướng đến index.php. Nếu mọi thứ diễn ra đúng, bạn sẽ có thể thấy tin nhắn thành công khi hoàn thành.

Nếu có bất kỳ lỗi nào bạn sẽ được thông báo về nó.

Cũng đọc:

  • Cách tải xuống tệp từ URL với PHP & Curl
  • Hệ thống đăng nhập và đăng ký người dùng PHP bằng MySQL

Vì vậy, chúng tôi đã thấy về tải lên tệp và để xem và tải xuống chúng bằng cơ sở dữ liệu PHP và MySQL. Nếu bạn muốn bạn có thể đặt giới hạn kích thước tệp hoặc hạn chế người dùng chỉ tải lên PDF hoặc hình ảnh, v.v.

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

Trong PHP, chúng ta có thể truy cập tên thực tế của tệp mà chúng ta đang tải lên bởi từ khóa $ _FILES [Tệp File] [Tên Tên]. $ _Files là từ khóa mặc định trong PHP để truy cập các chi tiết của các tệp mà chúng tôi đã tải lên. Tệp đề cập đến tên được xác định trong chỉ mục trên mạng. Hình thức HTML trong đầu vào của tệp.by keyword $_FILES[“file”][“name”]. The $_FILES is the by default keyword in PHP to access the details of files that we uploaded. The file refers to the name which is defined in the “index. html” form in the input of the file.

Các tệp được tải lên ở đâu?

PHP lưu trữ tất cả các tệp tạm thời, bao gồm các tệp được tải lên, trong thư mục tệp tạm thời như được chỉ định trong php.ini.Lưu ý rằng để tải lên, các tệp đó có thể bị xóa ngay khi tập lệnh, tệp được tải lên đã bị chấm dứt (vì vậy trừ khi bạn trì hoãn tập lệnh đó, có lẽ bạn sẽ không thấy tệp được tải lên).in the temporary files directory as specified in the php. ini. Note that for uploads, those files might be removed as soon as the script the file was uploaded to was terminated (so unless you delay that script, you probably won't see the uploaded file).

Làm cách nào để nhận thông tin tệp đã tải lên trong tập lệnh nhận trong PHP?

Để có được thông tin cơ bản của các tệp được tải lên, PHP cung cấp một mảng được xác định trước $ _Files được giải thích dưới đây một cách chi tiết.Mảng $ _FILES: $ _Files là một mảng toàn cầu được xác định trước và hai chiều giúp nhận được một tập lệnh để nhận thông tin về tệp được tải lên thông qua phương thức bài HTTP.$_FILES predefined array which is explained below in detail. $_FILES Array: The $_FILES is a predefined & two dimensional associative global array that helps to receive a script to get the information about the uploaded file via the HTTP post method.

Làm thế nào tôi có thể xem hình ảnh đã tải lên trong PHP?

$ _FILES ["Tệp"] ["Tên"]."";$ Image = $ _ Files ["File"] ["Tên"];/* Hiển thị hình ảnh*/$ img = "Tải lên/".$ Hình ảnh;echo '';}}} khác {echo "tệp không hợp lệ";}?>

Chủ đề