Jestem buliding na stronie internetowej dla urządzeń mobilnych, która używa angular-file-upload.min.js do przesyłania zdjęć z biblioteki obrazów urządzenia mobilnego.Angularjs kompresuje obraz przed przesłaniem
kod html:
<div>
<div class="rating-camera-icon">
<input type="file" accept="image/*" name="file" ng-file-
select="onFileSelect($files)">
</div>
<img ng-show="fileName" ng-src="server/{{fileName}}" width="40"
style="margin-left:10px">
</div>
Kod:
$scope.onFileSelect = function($files) {
for (var i = 0; i < $files.length; i++) {
var file = $files[i];
if (!file.type.match(/image.*/)) {
// this file is not an image.
};
$scope.upload = $upload.upload({
url: BASE_URL + 'upload.php',
data: {myObj: $scope.myModelObj},
file: file
}).progress(function(evt) {
// console.log('percent: ' + parseInt(100.0 * evt.loaded/evt.total));
// $scope.fileProgress = evt.loaded/evt.total * 100.0;
}).success(function(data, status, headers, config) {
// file is uploaded successfully
$scope.fileName = data;
});
}
};
Wysyłanie jest bardzo powolny w urządzeniach mobilnych. Jak mogę skompresować plik?
jeśli nie używasz natywną aplikację nie można skompresować plik również większość obrazów takich jak jpg są już skompresowane o ile wiem, nie ma nic możesz to zrobić. –
Jeśli poszukujesz manipulacji obrazem przed przesłaniem, może to pomóc: http://stackoverflow.com/questions/2434458/image-resizing-client-side- with-javascript-before-upload-to-the-server –