ファイルフィールドがimage
のフォームがありますが、このフィールドは必須ではありません。
ユーザーがフォームでファイルを選択しないと、3210は常にエラーを返します。
コントローラでアップロード操作を実行する前にユーザーがファイルを選択したかどうかを確認するにはどうすればよいですか?codeigniterでファイルフィールドが空であるかどうかをチェックする方法?
答えて
使用empty()空の関数は、ファイルのフィールドは、ファイルがis_uploaded_file()
を使用して有効であるかどうかをチェックしてみ空かない
if (! empty($_FILES)) {...}
if(!empty($_FILES['myFileField'])) {
// file field is not empty..
} else {
// no file uploaded..
}
であるかどうかをチェックしません。たとえば、次のようにあなたのコントローラで
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. UITextFieldsが空であるかどうかをチェックする方法?
- 2. リストビューが空であるかどうかチェックする方法
- 3. 空であるかどうかチェックボックスをチェックする方法
- 4. PythonでGtk.ListStoreが空であるかどうかをチェックする方法は?
- 5. JSONオブジェクトがJavaで空であるかどうかをチェックする方法は?
- 6. Pythonで変数が空であるかどうかをチェックする方法は?
- 7. json配列がc#で空であるかどうかをチェックする方法?
- 8. Qtでは、stdinが空であるかどうかをチェックする方法は?
- 9. 2d配列で行が空であるかどうかをチェックする方法。
- 10. VBAで配列が空であるかどうかをチェックする方法?
- 11. Elasticsearchでインデックスが空であるかどうかをチェックする方法は?
- 12. JSONオブジェクトがPHPで空であるかどうかをチェックする方法は?
- 13. perlでハッシュが空であるかどうかをチェックする方法
- 14. C#でExcel範囲が空であるかどうかをチェックする方法
- 15. NHibernate(HQL)でコレクションが空であるかどうかをチェックする方法?
- 16. perlでハッシュリファレンスが空であるかどうかをチェックする方法
- 17. ファイルがBashで空であるかどうかをチェックする方法?
- 18. データベースからのフィールドが空であるかどうかをチェックする方法?
- 19. iOSの場合、URLが空であるかどうかをチェックする方法
- 20. Bugzilla拡張。カスタムフィールドが空であるかどうかをチェックする方法
- 21. スパン内のオブジェクトが空であるかどうかをチェックする方法は?
- 22. 共有メモリが空であるかどうかをチェックする方法?
- 23. Perlアレイがまだ空であるかどうかをチェックする方法?
- 24. C++ std :: cinバッファが空であるかどうかをチェックする方法
- 25. 配列が空であるかどうかをチェックする方法?
- 26. 2次元配列が空であるかどうかをチェックする方法
- 27. MySQLの結果が空であるかどうかをチェックする方法
- 28. POSTフォームのデータが空であるかどうかをチェックする方法は?
- 29. オブジェクトが「深い空」であるかどうかをチェックする方法は?
- 30. 多次元配列が空であるかどうかをチェックする方法?
あなたは、私がこのフィールドの検証を必要としていないバリデーションルール –
でそれを宣言した場合だけで 'required'ルールを削除。 – squiter
これで、ユーザーがフォーム内のファイルを選択していないときにエラーは発生しません。エラーは何ですか? –