IOS6 piyasaya sürüldü ve ben fotoğraf yüklemeyi test ediyorum.IOS6 ve Safari Photo Uploading - Dosya API + Canvas + jQuery Ajax Dosyaları Eşzamansız Yükleme ve Yeniden Boyutlandırma
İyi çalışıyor, ancak 3G üzerinde daha büyük resimlerle beklendiği gibi YAVAŞ.
Dosya API'sı ve Canvas sayesinde, resimleri JavaScript kullanarak yeniden boyutlandırmak mümkündür. Fotoğrafları yüklemeyi denemeden önce yeniden boyutlandırırsam, daha hızlı bir kullanıcı deneyimine sahip olmak için daha hızlı yüklerler. Akıllı telefon işlemcileri, ağ hızlarından katlanarak daha hızlı ilerlerken, bu çözümün bir kazanan olduğuna inanıyorum.
Nicolas resim boyutlandırma için mükemmel bir çözüm getirmiştir:
Ancak, jQuery'nin Ajax ile uygulamadan en zor zaman yaşıyorum. Herhangi bir öneri veya yardım, bu kod muhtemelen mobil web uygulaması geliştirme sonrası IOS6 için son derece yararlı olacağı için takdir edilmektedir.
var fileType = file.type,
reader = new FileReader();
reader.onloadend = function() {
var image = new Image();
image.src = reader.result;
image.onload = function() {
//Detect image size
var maxWidth = 960,
maxHeight = 960,
imageWidth = image.width,
imageHeight = image.height;
if (imageWidth > imageHeight) {
if (imageWidth > maxWidth) {
imageHeight *= maxWidth/imageWidth;
imageWidth = maxWidth;
}
} else {
if (imageHeight > maxHeight) {
imageWidth *= maxHeight/imageHeight;
imageHeight = maxHeight;
}
}
//Create canvas with new image
var canvas = document.createElement('canvas');
canvas.width = imageWidth;
canvas.height = imageHeight;
var ctx = canvas.getContext("2d");
ctx.drawImage(this, 0, 0, imageWidth, imageHeight);
// The resized file ready for upload
var finalFile = canvas.toDataURL(fileType);
if (formdata) {
formdata.append("images[]", finalFile);
$.ajax({
url: "upload.php",
type: "POST",
data: formdata,
dataType: 'json',
processData: false,
contentType: false,
success: function (res) {
//successful image upload
}
});
}
}
}
reader.readAsDataURL(file);
Bunun için bir çözüm buldunuz mu? Büyük resimleri doğrudan kameradan yeniden boyutlandırırken ya da geçmişte kameradan çekilen bir fotoğrafta daha sorunlu olduğunu fark ettim. – NimmoNet