Hướng dẫn how can i tell if a file is uploaded in php? - Làm cách nào để biết một tệp được tải lên bằng php?

Tôi thực hiện một số xác thực biểu mẫu để đảm bảo rằng tệp mà người dùng đã tải lên đúng loại. Nhưng tải lên là tùy chọn, vì vậy tôi muốn bỏ qua việc xác thực nếu anh ta không tải lên bất cứ điều gì và gửi phần còn lại của biểu mẫu. Làm thế nào tôi có thể kiểm tra xem anh ấy có tải lên thứ gì đó hay không? Liệu $_FILES['myflie']['size'] <=0 sẽ hoạt động?

Hướng dẫn how can i tell if a file is uploaded in php? - Làm cách nào để biết một tệp được tải lên bằng php?

Trig

9.8246 huy hiệu vàng55 Huy hiệu bạc106 Huy hiệu đồng6 gold badges55 silver badges106 bronze badges

Đã hỏi ngày 3 tháng 6 năm 2009 lúc 18:38Jun 3, 2009 at 18:38

Bạn có thể sử dụng is_uploaded_file():

if(!file_exists($_FILES['myfile']['tmp_name']) || !is_uploaded_file($_FILES['myfile']['tmp_name'])) {
    echo 'No upload';
}

Từ các tài liệu:

Trả về đúng nếu tệp được đặt tên bởi FileName đã được tải lên qua bài đăng HTTP. Điều này rất hữu ích để giúp đảm bảo rằng người dùng độc hại đã không cố gắng lừa tập lệnh vào hoạt động trên các tệp mà không nên làm việc-vì, /etc /passwd.

Loại séc này đặc biệt quan trọng nếu có bất kỳ cơ hội nào được thực hiện với các tệp được tải lên đều có thể tiết lộ nội dung của chúng cho người dùng hoặc thậm chí với người dùng khác trên cùng một hệ thống.

Chỉnh sửa: Tôi đang sử dụng nó trong lớp Fileupload của mình, trong trường hợp nó giúp:

public function fileUploaded()
{
    if(empty($_FILES)) {
        return false;       
    } 
    $this->file = $_FILES[$this->formField];
    if(!file_exists($this->file['tmp_name']) || !is_uploaded_file($this->file['tmp_name'])){
        $this->errors['FileNotExists'] = true;
        return false;
    }   
    return true;
}

Hướng dẫn how can i tell if a file is uploaded in php? - Làm cách nào để biết một tệp được tải lên bằng php?

Ivar

5.66012 Huy hiệu vàng51 Huy hiệu bạc58 Huy hiệu Đồng12 gold badges51 silver badges58 bronze badges

Đã trả lời ngày 3 tháng 6 năm 2009 lúc 18:42Jun 3, 2009 at 18:42

Hướng dẫn how can i tell if a file is uploaded in php? - Làm cách nào để biết một tệp được tải lên bằng php?

karim79karim79karim79

336K67 Huy hiệu vàng411 Huy hiệu bạc405 Huy hiệu Đồng67 gold badges411 silver badges405 bronze badges

4

Mã này làm việc cho tôi. Tôi đang sử dụng nhiều tải lên tệp vì vậy tôi cần kiểm tra xem có tải lên không.

Phần HTML:


PHP PHẦN:

if(isset($_FILES['files']) ){  


foreach($_FILES['files']['tmp_name'] as $key => $tmp_name ){

      if(!empty($_FILES['files']['tmp_name'][$key])){

    //  things you want to do
    }
}

Trig

9.8246 huy hiệu vàng55 Huy hiệu bạc106 Huy hiệu đồng6 gold badges55 silver badges106 bronze badges

Đã hỏi ngày 3 tháng 6 năm 2009 lúc 18:38Jul 14, 2014 at 16:24

Bạn có thể sử dụng is_uploaded_file():pranjal

Từ các tài liệu:4 silver badges5 bronze badges

Trả về đúng nếu tệp được đặt tên bởi FileName đã được tải lên qua bài đăng HTTP. Điều này rất hữu ích để giúp đảm bảo rằng người dùng độc hại đã không cố gắng lừa tập lệnh vào hoạt động trên các tệp mà không nên làm việc-vì, /etc /passwd.

/**
 * Tests all upload fields to determine whether any files were submitted.
 * 
 * @return boolean
 */
function files_uploaded() {

    // bail if there were no upload forms
   if(empty($_FILES))
        return false;

    // check for uploaded files
    $files = $_FILES['files']['tmp_name'];
    foreach( $files as $field_title => $temp_name ){
        if( !empty($temp_name) && is_uploaded_file( $temp_name )){
            // found one!
            return true;
        }
    }   
    // return false if no files were found
   return false;
}

Loại séc này đặc biệt quan trọng nếu có bất kỳ cơ hội nào được thực hiện với các tệp được tải lên đều có thể tiết lộ nội dung của chúng cho người dùng hoặc thậm chí với người dùng khác trên cùng một hệ thống.Jun 18, 2012 at 19:58

Hướng dẫn how can i tell if a file is uploaded in php? - Làm cách nào để biết một tệp được tải lên bằng php?

doub1ejackdoub1ejackdoub1ejack

Chỉnh sửa: Tôi đang sử dụng nó trong lớp Fileupload của mình, trong trường hợp nó giúp:18 gold badges64 silver badges118 bronze badges

1

Ivar

function isUploadOkay($form_name, &$error_message) {
    if (!isset($_FILES[$form_name])) {
        $error_message = "No file upload with name '$form_name' in form.";
        return false;
    }
    $error = $_FILES[$form_name]['error'];

    // List at: http://php.net/manual/en/features.file-upload.errors.php
    if ($error != UPLOAD_ERR_OK) {
        switch ($error) {
            case UPLOAD_ERR_INI_SIZE:
                $error_message = 'The uploaded file exceeds the upload_max_filesize directive in php.ini.';
                break;

            case UPLOAD_ERR_FORM_SIZE:
                $error_message = 'The uploaded file exceeds the MAX_FILE_SIZE directive that was specified in the HTML form.';
                break;

            case UPLOAD_ERR_PARTIAL:
                $error_message = 'The uploaded file was only partially uploaded.';
                break;

            case UPLOAD_ERR_NO_FILE:
                $error_message = 'No file was uploaded.';
                break;

            case UPLOAD_ERR_NO_TMP_DIR:
                $error_message = 'Missing a temporary folder.';
                break;

            case UPLOAD_ERR_CANT_WRITE:
                $error_message = 'Failed to write file to disk.';
                break;

            case UPLOAD_ERR_EXTENSION:
                $error_message = 'A PHP extension interrupted the upload.';
                break;

            default:
                $error_message = 'Unknown error';
            break;
        }
        return false;
    }

    $error_message = null;
    return true;
}

5.66012 Huy hiệu vàng51 Huy hiệu bạc58 Huy hiệu ĐồngMar 16, 2017 at 12:17

Hướng dẫn how can i tell if a file is uploaded in php? - Làm cách nào để biết một tệp được tải lên bằng php?

Đã trả lời ngày 3 tháng 6 năm 2009 lúc 18:42Simon Backx

336K67 Huy hiệu vàng411 Huy hiệu bạc405 Huy hiệu Đồng13 silver badges15 bronze badges





Select image to upload:
"; $temporary_file = $myFile["tmp_name"][$i]; echo $temporary_file; echo "
"; $type = $myFile["type"][$i]; echo $type; echo "
"; $size = $myFile["size"][$i]; echo $size; echo "
"; $target_path = "uploads/$name"; //first make a folder named "uploads" where you will upload files if(move_uploaded_file($temporary_file,$target_path)) { echo " uploaded"; echo "
"; echo "
"; } else { echo "no upload "; } } } } ?>

Mã này làm việc cho tôi. Tôi đang sử dụng nhiều tải lên tệp vì vậy tôi cần kiểm tra xem có tải lên không.

Phần HTML:Jul 22, 2015 at 13:06

Hướng dẫn how can i tell if a file is uploaded in php? - Làm cách nào để biết một tệp được tải lên bằng php?

PHP PHẦN:shiv

Đã trả lời ngày 14 tháng 7 năm 2014 lúc 16:243 silver badges12 bronze badges

Pranjalpranjal

3414 Huy hiệu bạc5 Huy hiệu Đồng

@Karim79 có câu trả lời đúng, nhưng tôi phải viết lại ví dụ của anh ấy để phù hợp với mục đích của tôi. Ví dụ của anh ấy giả định rằng tên của trường đã gửi được biết và có thể được mã hóa cứng. Tôi đã tiến thêm một bước và tạo một hàm sẽ cho tôi biết nếu có bất kỳ tệp nào được tải lên mà không phải biết tên của trường tải lên.

Trig

9.8246 huy hiệu vàng55 Huy hiệu bạc106 Huy hiệu đồng6 gold badges55 silver badges106 bronze badges

Đã trả lời ngày 18 tháng 6 năm 2012 lúc 19:58Apr 13, 2015 at 6:54

TD_NijboerTD_NijboerTD_Nijboer

10.1k18 Huy hiệu vàng64 Huy hiệu bạc118 Huy hiệu đồng1 gold badge13 silver badges17 bronze badges

Bạn nên sử dụng

public function fileUploaded()
{
    if(empty($_FILES)) {
        return false;       
    } 
    $this->file = $_FILES[$this->formField];
    if(!file_exists($this->file['tmp_name']) || !is_uploaded_file($this->file['tmp_name'])){
        $this->errors['FileNotExists'] = true;
        return false;
    }   
    return true;
}
0. Nó trả về
public function fileUploaded()
{
    if(empty($_FILES)) {
        return false;       
    } 
    $this->file = $_FILES[$this->formField];
    if(!file_exists($this->file['tmp_name']) || !is_uploaded_file($this->file['tmp_name'])){
        $this->errors['FileNotExists'] = true;
        return false;
    }   
    return true;
}
1 nếu không có tệp được tải lên. Danh sách đầy đủ: PHP: Thông báo lỗi được giải thích

if(!file_exists($_FILES['fileupload']['tmp_name']) || !is_uploaded_file($_FILES['fileupload']['tmp_name'])) 
    {
        echo 'No upload';
    }   
    else
        echo 'upload';

Trig

9.8246 huy hiệu vàng55 Huy hiệu bạc106 Huy hiệu đồng6 gold badges55 silver badges106 bronze badges

Đã trả lời ngày 16 tháng 3 năm 2017 lúc 12:17Jul 31, 2014 at 5:28

Hướng dẫn how can i tell if a file is uploaded in php? - Làm cách nào để biết một tệp được tải lên bằng php?

Làm cách nào để xác minh một tệp đã tải lên?

Tập tin tải lên các kỹ thuật xác thực..
Xác thực mở rộng tập tin. Dòng phòng thủ đầu tiên của bạn chống lại ai đó tải các tệp nguy hiểm lên ứng dụng web của bạn là lọc mở rộng. ....
Xác thực loại nội dung. ....
Xác nhận chữ ký. ....
Tệp Tên vệ sinh. ....
Xác thực nội dung tập tin. ....
Tệp phân tích các lỗ hổng thư viện ..

Làm thế nào tôi có thể kiểm tra xem PDF có được tải lên trong PHP không?

Bạn có thể kiểm tra loại MIME của tệp bằng các chức năng thông tin tệp của PHP.Nếu nó trả về với loại 'Ứng dụng/PDF' thì nó phải là PDF.using PHP's File Info Functions. If it returns with the type 'application/pdf' then it should be a PDF.

Chức năng nào được sử dụng để xác định tệp được tải lên trong PHP?

Hàm php is_uploaded_file () Hàm is_upLoaded_file () kiểm tra xem tệp được chỉ định có được tải lên qua bài đăng http hay không.is_uploaded_file() Function The is_uploaded_file() function checks whether the specified file is uploaded via HTTP POST.

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).