Oto kod HTML do przesyłania zdjęć.Domyślnie pliki obrazów będą wyświetlane tylko w oknie przeglądania, ponieważ wstawiliśmy accept="image/*"
. Ale wciąż możemy go zmienić z menu i wyświetli wszystkie pliki. Tak więc część Javascript sprawdza czy wybrany plik jest rzeczywistym obrazem.
<div class="col-sm-8 img-upload-section">
<input name="image3" type="file" accept="image/*" id="menu_images"/>
<img id="menu_image" class="preview_img" />
<input type="submit" value="Submit" />
</div>
Tutaj, w przypadku zdarzenia zmiany, najpierw sprawdzamy rozmiar obrazu. W drugim wariancie if
sprawdzamy, czy jest to plik obrazu.
this.files[0].type.indexOf("image")
będzie -1
, jeśli nie jest plikiem obrazu.
document.getElementById("menu_images").onchange = function() {
var reader = new FileReader();
if(this.files[0].size>528385){
alert("Image Size should not be greater than 500Kb");
$("#menu_image").attr("src","blank");
$("#menu_image").hide();
$('#menu_images').wrap('<form>').closest('form').get(0).reset();
$('#menu_images').unwrap();
return false;
}
if(this.files[0].type.indexOf("image")==-1){
alert("Invalid Type");
$("#menu_image").attr("src","blank");
$("#menu_image").hide();
$('#menu_images').wrap('<form>').closest('form').get(0).reset();
$('#menu_images').unwrap();
return false;
}
reader.onload = function (e) {
// get loaded data and render thumbnail.
document.getElementById("menu_image").src = e.target.result;
$("#menu_image").show();
};
// read the image file as a data URL.
reader.readAsDataURL(this.files[0]);
};
Oczywiście, aby properply zabezpieczyć to - chciałbym sprawdzić po stronie serwera/serwera. Ale wszystko, czego szukam, to sposób na proste zorientowanie się użytkownika, aby po kliknięciu "przeglądaj", aby znaleźć obraz, który chcą przesłać, nie muszą widzieć wszystkich dokumentów tekstowych itp., Które nie mają zastosowania do upload – JacobT
Nie wiem, że możesz ustawić maskę pliku. Nigdy nie widziałem, żeby to się udało. –