Hướng dẫn php default file upload directory - thư mục tải lên tệp mặc định php

Tôi đang làm việc trên tệp tải lên thông qua một trang web với thanh tiến trình bằng trình tải lên tệp Valums. Hầu hết mọi thứ đều hoạt động tốt, nhưng tôi không thể thay đổi thư mục TMP mặc định, trong đó tệp được lưu trữ trong quá trình tải lên.during the upload.

Các tệp nên được lưu trữ trong thư mục /upload và không phải trong thư mục hệ thống mặc định /tmp, bởi vì /tmp được gắn trong đĩa RAM có kích thước giới hạn ở 4 & NBSP; MB và người dùng sẽ tải lên các tệp khoảng 10 & NBSP; MB.

Tôi đã tìm kiếm rất nhiều trang web, nhưng không có giải pháp nào hoạt động. Tôi đã đặt thư mục tạm thời trong

;;;;;;;;;;;;;;;;
; File Uploads ;
;;;;;;;;;;;;;;;;
; Whether to allow HTTP file uploads.
; http://php.net/file-uploads
file_uploads = On
; Temporary directory for HTTP uploaded files (will use system default if not
; specified).
; http://php.net/upload-tmp-dir
; upload_tmp_dir = /tmp
; Maximum allowed size for uploaded files.
; http://php.net/upload-max-filesize
upload_max_filesize = 150M
; Maximum number of files that can be uploaded via a single request
max_file_uploads = 20
1:

upload_tmp_dir =/upload

Tôi đã đặt quyền cho /upload DIR và Apache là chủ sở hữu của tệp, vì vậy thư mục chắc chắn có thể ghi được bởi PHP.

Tôi đã đặt đường dẫn đích trong trình tải lên tệp thành /upload, vì tôi muốn các tệp được lưu trữ sau khi tải lên trong thư mục này. Kết quả cuối cùng là các tệp nhỏ đang được tải lên thành công, nhưng các tệp lớn hơn 4 & nbsp; MB không tải lên-lý do duy nhất của hành vi này xuất hiện trong tâm trí tôi là các tệp được lưu trữ trong ____99 trong quá trình tải lên. Để chắc chắn, tôi đã kiểm tra nó với

;;;;;;;;;;;;;;;;
; File Uploads ;
;;;;;;;;;;;;;;;;
; Whether to allow HTTP file uploads.
; http://php.net/file-uploads
file_uploads = On
; Temporary directory for HTTP uploaded files (will use system default if not
; specified).
; http://php.net/upload-tmp-dir
; upload_tmp_dir = /tmp
; Maximum allowed size for uploaded files.
; http://php.net/upload-max-filesize
upload_max_filesize = 150M
; Maximum number of files that can be uploaded via a single request
max_file_uploads = 20
5 và kết quả là ____ 9-vì vậy PHP bỏ qua chỉ thị php.ini của tôi hoặc có một số cách khác để đặt nơi lưu trữ các tệp trong quá trình tải lên.

Ồ, và thông tin cuối cùng:

;;;;;;;;;;;;;;;;
; File Uploads ;
;;;;;;;;;;;;;;;;
; Whether to allow HTTP file uploads.
; http://php.net/file-uploads
file_uploads = On
; Temporary directory for HTTP uploaded files (will use system default if not
; specified).
; http://php.net/upload-tmp-dir
; upload_tmp_dir = /tmp
; Maximum allowed size for uploaded files.
; http://php.net/upload-max-filesize
upload_max_filesize = 150M
; Maximum number of files that can be uploaded via a single request
max_file_uploads = 20
7 không được đặt, vì vậy quyền truy cập PHP vào đĩa chỉ bị giới hạn bởi các quyền của tệp.

Tôi là một nhà phát triển PHP cao cấp. Dù sao thì đó cũng là những gì tôi nói với bản thân mình.

Điều đó có nghĩa là tôi nên biết cách làm điều này cuộc sống này.

Tôi đã phải xử lý một tải trọng tệp trong một dự án gần đây, mà không cần nắm tay một khung, và tôi thấy nó khó hơn tôi nhớ.

Ở đây, tất cả các bit và mảnh tôi gần như quên mất.

PHP sẽ cho phép bạn tải lên tệp của mình? Tôi có thể tải lên một tập tin lớn như thế nào?

Kiểm tra phần sau trong tệp

;;;;;;;;;;;;;;;;
; File Uploads ;
;;;;;;;;;;;;;;;;
; Whether to allow HTTP file uploads.
; http://php.net/file-uploads
file_uploads = On
; Temporary directory for HTTP uploaded files (will use system default if not
; specified).
; http://php.net/upload-tmp-dir
; upload_tmp_dir = /tmp
; Maximum allowed size for uploaded files.
; http://php.net/upload-max-filesize
upload_max_filesize = 150M
; Maximum number of files that can be uploaded via a single request
max_file_uploads = 20
1 của bạn và kiểm tra cài đặt của bạn.

;;;;;;;;;;;;;;;;
; File Uploads ;
;;;;;;;;;;;;;;;;
; Whether to allow HTTP file uploads.
; http://php.net/file-uploads
file_uploads = On
; Temporary directory for HTTP uploaded files (will use system default if not
; specified).
; http://php.net/upload-tmp-dir
; upload_tmp_dir = /tmp
; Maximum allowed size for uploaded files.
; http://php.net/upload-max-filesize
upload_max_filesize = 150M
; Maximum number of files that can be uploaded via a single request
max_file_uploads = 20

Điều quan trọng nhất ở đây là file_uploads (thường được mặc định) và tải lên_max_filesize (thường nhỏ hơn bạn cần theo mặc định). Ngoài ra, hãy chú ý đến tải lên_tmp_dir, bạn sẽ cần điều này trong thời gian ngắn.file_uploads (which is normally on by default) and upload_max_filesize (which is normally smaller than you need by default). Also, pay attention to upload_tmp_dir… you’ll need this shortly.

Bạn chưa hoàn thành. Một cài đặt nữa để thay đổi.

; Maximum size of POST data that PHP will accept.
; Its value may be 0 to disable the limit. It is ignored if POST data reading
; is disabled through enable_post_data_reading.
; http://php.net/post-max-size
post_max_size = 150M

Nếu bạn đã thay đổi cài đặt này, bạn sẽ thấy các thông báo lỗi như sau:

PHP Warning:  POST Content-Length of 63023816 bytes exceeds the limit of 8388608 bytes in Unknown on line 0, referer: https://mywebsite.com/upload

Nếu bạn không có quyền truy cập dễ dàng vào tệp PHP.INI của mình hoặc bạn không chắc chắn

;;;;;;;;;;;;;;;;
; File Uploads ;
;;;;;;;;;;;;;;;;
; Whether to allow HTTP file uploads.
; http://php.net/file-uploads
file_uploads = On
; Temporary directory for HTTP uploaded files (will use system default if not
; specified).
; http://php.net/upload-tmp-dir
; upload_tmp_dir = /tmp
; Maximum allowed size for uploaded files.
; http://php.net/upload-max-filesize
upload_max_filesize = 150M
; Maximum number of files that can be uploaded via a single request
max_file_uploads = 20
1 mà Apache đang chạy, bạn cũng có thể tìm ra điều này bằng cách tạo tập lệnh PHP nhanh và bẩn.

phpinfo();

Có phải biểu mẫu HTML của bạn sẽ cho phép bạn tải lên tệp của mình không?

enctype="multipart/form-data">

Các phần in đậm thực sự quan trọng. Enctype bảo HTML gửi một tệp. PHP chú ý đến trường MAGIC MAX_FILE_SIZE và sẽ cho phép tệp của bạn nếu nó quá nhỏ. Bạn cũng nên đặt loại MIME của tệp, nếu bạn biết những gì bạn sẽ xử lý.enctype tells HTML to send up a file. PHP pays attention to the magic MAX_FILE_SIZE form field and will dis-allow your file if it’s too small. You should also set the MIME type of the file, if you know what you’re going to be dealing with.

Nhấn nút tải lên ưa thích của bạn và cho rằng bạn đã có PHP ngồi ở điểm cuối /upload.Upload button, and assume you’ve got PHP sitting at that /upload endpoint.

PHP đã làm gì với tệp của tôi?

PHP dính tệp của bạn trong một one autoglobals ma thuật,

; Maximum size of POST data that PHP will accept.
; Its value may be 0 to disable the limit. It is ignored if POST data reading
; is disabled through enable_post_data_reading.
; http://php.net/post-max-size
post_max_size = 150M
1. Nếu tất cả đã đi theo kế hoạch,
; Maximum size of POST data that PHP will accept.
; Its value may be 0 to disable the limit. It is ignored if POST data reading
; is disabled through enable_post_data_reading.
; http://php.net/post-max-size
post_max_size = 150M
1 sẽ được điền với các chi tiết về tệp mà bạn đã tải lên. Lưu ý rằng PHP được thiết lập để xử lý nhiều tệp tệp cùng một lúc, do đó
; Maximum size of POST data that PHP will accept.
; Its value may be 0 to disable the limit. It is ignored if POST data reading
; is disabled through enable_post_data_reading.
; http://php.net/post-max-size
post_max_size = 150M
1 là một mảng các tệp và sẽ được khóa bởi tên được sử dụng trong trường Tệp. Ở trên, chúng tôi đã sử dụng chuỗi
; Maximum size of POST data that PHP will accept.
; Its value may be 0 to disable the limit. It is ignored if POST data reading
; is disabled through enable_post_data_reading.
; http://php.net/post-max-size
post_max_size = 150M
4, vì vậy chúng tôi sẽ sử dụng tương tự dưới đây.

Nó cũng đã lấy tệp đã tải lên và dán nó vào một thư mục tạm thời với một tên tạm thời.

Nếu bạn đã đặt thư mục upload_tmp_dir ở trên, thì bạn sẽ biết chính xác nó ở đâu.upload_tmp_dir directory above, then you’ll know exactly where it is.

Nếu bạn thiên đường hoặc có thể, nó sẽ tải nó lên thư mục Temp hệ thống mặc định. Thông thường, (và chính xác là gì bình thường?) Đây là /tmp nhưng đây không phải là thông tin bạn có thể đến ngân hàng. Bạn nên kiểm tra kỹ. Để làm điều này, bạn có thể sử dụng hàm tiêu chuẩn:

;;;;;;;;;;;;;;;;
; File Uploads ;
;;;;;;;;;;;;;;;;
; Whether to allow HTTP file uploads.
; http://php.net/file-uploads
file_uploads = On
; Temporary directory for HTTP uploaded files (will use system default if not
; specified).
; http://php.net/upload-tmp-dir
; upload_tmp_dir = /tmp
; Maximum allowed size for uploaded files.
; http://php.net/upload-max-filesize
upload_max_filesize = 150M
; Maximum number of files that can be uploaded via a single request
max_file_uploads = 20
5.

Các tệp cũng sẽ được tải lên với một tên tạm thời, vì vậy bạn sẽ cần phải đổi tên nó. Thông thường chúng tôi sẽ sử dụng giá trị của

; Maximum size of POST data that PHP will accept.
; Its value may be 0 to disable the limit. It is ignored if POST data reading
; is disabled through enable_post_data_reading.
; http://php.net/post-max-size
post_max_size = 150M
7.

Làm cách nào để sử dụng tệp này?

Nếu bạn muốn giữ tệp của mình xung quanh, bạn sẽ cần phải di chuyển nó ra khỏi thư mục tạm thời đến một vị trí cố định và đổi tên nó.

Thông thường bạn làm điều gì đó như thế này:

$properName = $_FILES['myfile']['name'];
$properPath = '/my/app/uploads/'.$properName;
move_uploaded_file($_FILES['myfile']['tmp_name'], $properName);

Tôi có thể làm gì đó với một tệp zip không?

Vâng, bạn đã may mắn.

PHP có một thư viện tiêu chuẩn mà bạn có thể sử dụng, và nó rất đơn giản.

(Ngoài ra, bạn có thể và nên xác nhận bằng cách kiểm tra loại MIME.)

$uploadedFilename = $_FILES['articulate-zip']['tmp_name'];if (mime_content_type($uploadedFilename) !== 'application/zip') {
throw new Exception("This ain't a ZIP file compadre.");
}
$zip = new ZipArchive();
if ($zip->open($uploadedFilename)) {
$zip->extractTo($localDirectory);
$zip->close();
} else {
throw new Exception('Unable to process ZIP file');
}

Sự kết luận

Đó là nó!

Tôi nói nó dành cho bạn, nhưng bài viết này thực sự dành cho tôi vì vậy tôi có thể tiếp tục trông giống như một Php Dev cao cấp.

Php Store đã 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 thế nào để tải lên tệp trong thư mục cụ thể trong PHP?

Tạo tập lệnh tải lên tập lệnh PHP $ target_dir = "Tải lên/" - Chỉ định thư mục nơi tệp sẽ được đặt. $ target_file chỉ định đường dẫn của tệp sẽ được tải lên. $ uploadok = 1 chưa được sử dụng (sẽ được sử dụng sau) $ ImageFileType giữ phần mở rộng tệp của tệp (trong trường hợp thường)$target_dir = "uploads/" - specifies the directory where the file is going to be placed. $target_file specifies the path of the file to be uploaded. $uploadOk=1 is not used yet (will be used later) $imageFileType holds the file extension of the file (in lower case)

Tệp tải lên PHP là gì?

PHP cho phép bạn tải lên một và nhiều tệp thông qua một vài dòng mã.Các tính năng tải lên tệp PHP cho phép bạn tải lên các tệp nhị phân và văn bản.Hơn nữa, bạn có thể có toàn quyền kiểm soát tệp sẽ được tải lên thông qua xác thực PHP và các chức năng hoạt động tệp.allows you to upload binary and text files both. Moreover, you can have the full control over the file to be uploaded through PHP authentication and file operation functions.

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.