Bu tamamen mümkündür. Javascript kullan.
Giriş öğesini seçmek için jQuery kullanıyorum. Bir değişiklik olayı ile kurdum.
$("#aFile_upload").on("change", function (e) {
var count=1;
var files = e.currentTarget.files; // puts all files into an array
// call them as such; files[0].size will get you the file size of the 0th file
for (var x in files) {
var filesize = ((files[x].size/1024)/1024).toFixed(4); // MB
if (files[x].name != "item" && typeof files[x].name != "undefined" && filesize <= 10) {
if (count > 1) {
approvedHTML += ", "+files[x].name;
}
else {
approvedHTML += files[x].name;
}
count++;
}
}
$("#approvedFiles").val(approvedHTML);
});
Yukarıdaki kod olur aslında göndermeden önce ben, gönderme sayfasına devam eden layık gördükleri tüm dosya adlarını kaydeder. "Onaylı" dosyaları jQuery kullanarak bir giriş öğesinin valsına ekledim, böylece bir form gönderimi kaydetmek istediğim dosyaların isimlerini gönderir. Ancak tüm dosyalar gönderilecek, ancak şimdi sunucu tarafında bunları filtrelemek zorundayız. Bunun için henüz bir kod yazmamıştım, ama hayal gücünü kullan. Bunu bir for döngüsüyle başarabilir ve giriş alanından gönderilen isimleri eşleştirebilir ve $ _FILES (PHP Superglobal, kusurlu ruby dosyası değişkenini bilmiyorum) değişkeniyle eşleştirebilirim.
Öncelikle, göndermeden önce dosya denetimleri yapabilirsiniz. Bunu yaptıktan sonra, sitemi ne yüklediklerini bilmelerini sağlamak için formu göndermeden önce kullanıcıya gönderirim. Ölçütleri karşılamayan herhangi bir şey kullanıcıya geri gösterilmez ve bu nedenle, çok büyük dosyaların kaydedilmeyeceğini bilmeleri gerekir. Bu, tüm tarayıcılarda çalışmalıdır, çünkü FormData nesnesini kullanmıyorum.
Bu mümkündür. Lütfen [bu] adresine bakın (http://stackoverflow.com/questions/3717793/javascript-file-upload-size-validation). – sandSK