<input type="file">タグを使用して画像ファイルのみをアップロードする必要があります。
現在、すべてのファイルタイプを受け入れます。しかし、私は、唯一の特定の画像ファイルの拡張子にそれを制限したい.jpg、.gifなど
この機能を実現するにはどうすればよいですか?
<input type="file">タグを使用して画像ファイルのみをアップロードする必要があります。
現在、すべてのファイルタイプを受け入れます。しかし、私は、唯一の特定の画像ファイルの拡張子にそれを制限したい.jpg、.gifなど
この機能を実現するにはどうすればよいですか?
回答:
inputタグのaccept属性を使用します。したがって、PNG、JPEG、GIFのみを受け入れるには、次のコードを使用できます。
<input type="file" name="myImage" accept="image/x-png,image/gif,image/jpeg" />
または単に:
<input type="file" name="myImage" accept="image/*" />
これは、ユーザーに表示するファイルタイプに関するヒントをブラウザに提供するだけですが、これは簡単に回避できるため、サーバーにアップロードされたファイルも常に検証する必要があります。
IE 10以降、Chrome、Firefox、Safari 6以降、Opera 15以降で動作するはずですが、モバイルでのサポートは非常に不完全です(2015年現在)。ターゲットプラットフォームをよくテストしてください。
ブラウザーのサポートの詳細については、http://caniuse.com/#feat=input-file-acceptを参照してください
accept="file/csv, file/xls"は有効ですか?
image/x-png?このリストによると、それだけimage/pngです。iana.org/assignments/media-types/media-types.xhtml
これを使用する:
<input type="file" accept="image/*">
FFとChromeの両方で動作します。
このように使う
<input type="file" accept=".png, .jpg, .jpeg" />
それは私のために働いた
手順:
1.入力タグに
Accept 属性を
追加します2. JavaScriptで検証します3.サーバー側の検証を追加して、コンテンツが本当に期待されるファイルタイプかどうかを確認します
HTMLおよびJavaScriptの場合:
<html>
<body>
<input name="image" type="file" id="fileName" accept=".jpg,.jpeg,.png" onchange="validateFileType()"/>
<script type="text/javascript">
function validateFileType(){
var fileName = document.getElementById("fileName").value;
var idxDot = fileName.lastIndexOf(".") + 1;
var extFile = fileName.substr(idxDot, fileName.length).toLowerCase();
if (extFile=="jpg" || extFile=="jpeg" || extFile=="png"){
//TO DO
}else{
alert("Only jpg/jpeg and png files are allowed!");
}
}
</script>
</body>
</html>
説明:
これは、
<input type="file" accept="image/*" />
しかし、これは良い方法ではありません。ファイルを画像かどうかを確認するには、サーバー側でコーディングする必要があります。
画像ファイルが実際の画像か偽の画像かを確認します
if(isset($_POST["submit"])) {
$check = getimagesize($_FILES["fileToUpload"]["tmp_name"]);
if($check !== false) {
echo "File is an image - " . $check["mime"] . ".";
$uploadOk = 1;
}
else {
echo "File is not an image.";
$uploadOk = 0;
}
}
詳細については、こちらをご覧ください
http://www.w3schools.com/tags/att_input_accept.asp
http://www.w3schools.com/php/php_file_upload.asp
このドキュメントacceptを<input type="file">読むために属性を使用できますhttp://www.w3schools.com/tags/att_input_accept.asp
type = "file"およびaccept = "image / *"(または必要な形式)を使用して、ユーザーが特定の形式のファイルを選択できるようにします。ただし、ユーザーは他のタイプのファイルを選択できるため、クライアント側で再度確認する必要があります。これでうまくいきます。
<input #imageInput accept="image/*" (change)="processFile(imageInput)" name="upload-photo" type="file" id="upload-photo" />
そして、あなたのJavaScriptスクリプトで
processFile(imageInput) {
if (imageInput.files[0]) {
const file: File = imageInput.files[0];
var pattern = /image-*/;
if (!file.type.match(pattern)) {
alert('Invalid format');
return;
}
// here you can do whatever you want with your image. Now you are sure that it is an image
}
}
const file: File = imageInput.files[0];ですか?また、入力へのIDの割り当ては、従来の方法では行われません。
複数の画像を一度にアップロードしたい場合はmultiple、入力に属性を追加できます。
upload multiple files: <input type="file" multiple accept='image/*'>