Tôi có một biểu mẫu có trường tệp được gọi là image
, nhưng trường này không bắt buộc.
Khi người dùng không chọn bất kỳ tệp nào dưới dạng, do_upload()
luôn trả về lỗi.
Làm cách nào để kiểm tra xem người dùng đã chọn tệp trước khi thực hiện hành động tải lên trong bộ điều khiển của tôi?Cách kiểm tra xem trường tệp có trống trong trình mã hóa không?
Trả lời
Vui lòng sử dụng rỗng()
if (empty($_FILES['userfile']['name'])) {
}
Tôi không thể truy cập $ _FILE từ bộ điều khiển mã vạch. – squiter
Đó là $ _FILES không phải $ _FILE –
Đó là $ _FILES (số nhiều), và tại sao lại không? Biểu mẫu của bạn được gửi đến một hàm trong bộ điều khiển có nghĩa là tất cả các super_globals (tức là $ _POST và $ _FILES) có sẵn trong phạm vi chức năng – Matanya
sử dụng chức năng empty() trống không kiểm tra xem trường Tệp trống hay không
if (! empty($_FILES)) {...}
if(!empty($_FILES['myFileField'])) {
// file field is not empty..
} else {
// no file uploaded..
}
Hãy thử để kiểm tra xem các tập tin có giá trị sử dụng is_uploaded_file()
. Ví dụ:
if(is_uploaded_file($_FILES['userfile']['tmp_name']))
{
do_upload();
}
Tôi không thể truy cập $ _FILE từ bộ điều khiển mã vạch. – squiter
Trong điều khiển của bạn, về chức năng tiếp nhận các hình thức nộp:
if (isset($_FILES['image']['name']) && !empty($_FILES['image']['name'])) {
// do_upload
}
'isset' là dư thừa. Từ [docs] (http://php.net/manual/en/function.empty.php): 'empty() về cơ bản là tương đương ngắn gọn với! Isset ($ var) || $ var == false' –
Như tập tin lỗi tải lên "Không tệp được chọn "là số 4, cách thực hiện đúng là:
if ($_FILES['my_image_field_name']['error'] !== 4){
if ($this->upload->do_upload('my_image_field_name')) { ...
Khi kiểm tra theo tên hoặc tên miền tmp_name, có thể có các lý do khác khiến các trường này không được phổ biến và bạn có thể bỏ lỡ các trường này.
Dưới đây là đầy đủ kịch bản để kiểm tra nếu lĩnh vực tập tin rỗng hay không trong php
<!DOCTYPE html>
<html>
<body>
<form action="#" method="post" enctype="multipart/form-data">
Select image to upload:
<input name="my_files[]" type="file" multiple="multiple" />
<input type="submit" value="Upload Image" name="submit">
</form>
<?php
if (isset($_FILES['my_files']))
{
$myFile = $_FILES['my_files'];
$fileCount = count($myFile["name"]);
for ($i = 0; $i <$fileCount; $i++)
{
$error = $myFile["error"][$i];
if ($error == '4') // error 4 is for "no file selected"
{
echo "no file selected";
}
else
{
$name = $myFile["name"][$i];
echo $name;
echo "<br>";
$temporary_file = $myFile["tmp_name"][$i];
echo $temporary_file;
echo "<br>";
$type = $myFile["type"][$i];
echo $type;
echo "<br>";
$size = $myFile["size"][$i];
echo $size;
echo "<br>";
$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 "<br>";
echo "<br>";
}
else
{
echo "no upload ";
}
}
}
}
?>
</body>
</html>
Nhưng hãy tỉnh táo. Người dùng có thể tải lên bất kỳ loại tệp nào và cũng có thể hack máy chủ hoặc hệ thống của bạn bằng cách tải lên tệp độc hại hoặc tệp php. Trong tập lệnh này, cần có một số xác nhận hợp lệ.
tham khảo http://www.techzigzag.com/how-to-check-that-user-has-upload-any-file-or-not-in-php/
Hy vọng nó sẽ giúp bạn.
Chỉ cần sử dụng mã php gốc để kiểm tra tệp tải lên.
if(!file_exists($_FILES['myfile']['tmp_name']) || !is_uploaded_file($_FILES['myfile']['tmp_name'])) {
echo 'No upload';
}
if(!empty($_FILES[$file_name]['name'])){
// TODO your logic
}else{
echo "empty";
}
- 1. cách kiểm tra xem trường tệp có trống không?
- 2. Cách kiểm tra xem tệp có trống không?
- 3. Django kiểm tra xem trường có trống không?
- 4. Python - Kiểm tra xem tệp có trống hay không
- 5. Cách kiểm tra xem một mảng có trống không?
- 6. kiểm tra xem NSNumber có trống không
- 7. Cách kiểm tra xem UITextField có trống không?
- 8. Cách kiểm tra xem biến có trống không trong python?
- 9. Kiểm tra xem NumericUpDown có trống không
- 10. kiểm tra xem biến có trống không
- 11. Kiểm tra xem BSTR có trống không
- 12. Kiểm tra xem chuỗi có trống không
- 13. Magento Cách kiểm tra xem giỏ hàng có trống không?
- 14. Cách kiểm tra xem động có trống không.
- 15. Cách kiểm tra xem có trường nào trong biểu mẫu trống không
- 16. MVC3 Razor: cách kiểm tra xem model có trống không
- 17. Cách kiểm tra xem tệp có rỗng trong Bash không?
- 18. Kiểm tra xem hộp thư có trống không? trong erlang
- 19. Với iOS, cách kiểm tra xem URL có trống không
- 20. làm cách nào để kiểm tra xem trường nhập liệu có trống không
- 21. Làm cách nào để kiểm tra xem trường CK Editor có trống không
- 22. Kiểm tra xem hộp nhập liệu có trống không
- 23. Kiểm tra xem một mảng có trống không trong Jinja2
- 24. PHP & MySql kiểm tra xem bảng có trống không
- 25. Mục tiêu c kiểm tra xem trường văn bản trống
- 26. Kiểm tra xem mảng có trống hay không
- 27. Kiểm tra xem thuộc tính CoreData có trống không
- 28. Kiểm tra xem hình ảnh có trống trong C#
- 29. Kiểm tra tệp trống trong C++
- 30. cách kiểm tra xem đầu đọc thẻ flash trống có có trong khe cắm USB không?
Chỉ cần loại bỏ các 'quy tắc required' nếu bạn đã tuyên bố trong các quy tắc xác nhận –
Tôi không có yêu cầu xác nhận cho lĩnh vực này. – squiter
Sau đó, bạn sẽ không nhận được bất kỳ lỗi nào khi người dùng không chọn bất kỳ tệp nào trong biểu mẫu .. Lỗi chính xác là gì? –