我有一個名爲image
的文件字段,但這個字段不是必需的。
當用戶沒有在表單中選擇任何文件時,3210總是返回一個錯誤。
如何在我的控制器中執行上載操作之前檢查用戶是否選擇了一個文件?如何檢查codeigniter中的文件字段是否爲空?
回答
嘗試檢查文件中使用is_uploaded_file()
是有效的。例如:
if(is_uploaded_file($_FILES['userfile']['tmp_name']))
{
do_upload();
}
我無法從codeigniter控制器訪問$ _FILE。 – squiter
在你的控制器,在接收到提交的表單功能:
if (isset($_FILES['image']['name']) && !empty($_FILES['image']['name'])) {
// do_upload
}
'isset'是多餘的。從[docs](http://php.net/manual/en/function.empty.php):'empty()實質上就是!isset($ var)|| $ var == false' –
由於文件上傳錯誤「無文件選擇「是4號,正確的做法是:
if ($_FILES['my_image_field_name']['error'] !== 4){
if ($this->upload->do_upload('my_image_field_name')) { ...
當通過名稱或tmp_name進行檢查時,可能還有其他原因導致這些字段未填充,您可能會錯過這些字段。
這裏充滿腳本來檢查文件是否字段爲空或不在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>
但要警惕。用戶可以上傳任何類型的文件,也可以通過上傳惡意或php文件來破解您的服務器或系統。在這個腳本中應該有一些驗證。
參考http://www.techzigzag.com/how-to-check-that-user-has-upload-any-file-or-not-in-php/
希望它會幫助你。
只需使用本地php代碼來檢查文件上傳。
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. 檢查文本字段是否爲空
- 2. 如何檢查文件字段是否爲空?
- 3. 如何檢查表單中的任何字段是否爲空
- 4. 如何檢查drupal 8中的字段是否爲空?
- 5. 如何檢查ABNewPersonViewController中的所有字段是否爲空
- 6. 如何檢查數據庫中的字段是否爲空?
- 7. PHP檢查是否爲空字段
- 8. 檢查字段是否爲空
- 9. PHP檢查字段是否爲空
- 10. 檢查輸入字段是否爲空
- 11. 檢查winforms字段是否爲空
- 12. Django檢查字段是否爲空?
- 13. phpMailer檢查字段是否爲空
- 14. Laravel auth檢查字段是否爲空
- 15. mysql檢查是否爲空字段
- 16. laravel 5.2 - 檢查字段是否爲空
- 17. CodeIgniter:如何檢查其中一個字段是否爲必填字段
- 18. 檢查是否有空文本字段
- 19. 如何檢查DateTime字段是否爲空或空?
- 20. 如何檢查字段是否爲空且空白?
- 21. 如何檢查字段是否爲textarea
- 22. 如何檢查JPassword字段是否爲
- 23. 如何檢查顯示的輸入字段是否爲空?
- 24. codeigniter上傳文件檢查是否爲空
- 25. 如何檢查循環中的文件夾是否爲空?
- 26. 如何檢查SQL腳本中的文件是否爲空?
- 27. 如何檢查文件中的某行是否爲空bash
- 28. 如何檢查Expressionengine 2中的文件描述是否爲空?
- 29. 如何檢查文件中的下一行是否爲空?
- 30. 如何檢查Java中的ZIP文件是否爲空?
只是刪除了'required'規則,如果你已經在驗證規則 –
宣佈它,我沒有要求對這一領域的驗證。 – squiter
然後,當用戶不選擇任何文件時,您不應該得到任何錯誤..完全錯誤是什麼? –