Image resize before upload

后端 未结 9 1498
闹比i
闹比i 2020-11-28 03:09

I need to provide a means for a user to upload photos to their web site in jpeg format. However, the photos are very large in original size, and I would like to make the re

9条回答
  •  有刺的猬
    2020-11-28 03:28

    You can resize the image in the client-side before uploading it using an image processing framework.

    Below I used MarvinJ to create a runnable code based on the example in the following page: "Processing images in client-side before uploading it to a server"

    Basically I use the method Marvin.scale(...) to resize the image. Then, I upload the image as a blob (using the method image.toBlob()). The server answers back providing a URL of the received image.

    /***********************************************
     * GLOBAL VARS
     **********************************************/
    var image = new MarvinImage();
    
    /***********************************************
     * FILE CHOOSER AND UPLOAD
     **********************************************/
     $('#fileUpload').change(function (event) {
    	form = new FormData();
    	form.append('name', event.target.files[0].name);
    	
    	reader = new FileReader();
    	reader.readAsDataURL(event.target.files[0]);
    	
    	reader.onload = function(){
    		image.load(reader.result, imageLoaded);
    	};
    	
    });
    
    function resizeAndSendToServer(){
      $("#divServerResponse").html("uploading...");
    	$.ajax({
    		method: 'POST',
    		url: 'https://www.marvinj.org/backoffice/imageUpload.php',
    		data: form,
    		enctype: 'multipart/form-data',
    		contentType: false,
    		processData: false,
    		
    	   
    		success: function (resp) {
           $("#divServerResponse").html("SERVER RESPONSE (NEW IMAGE):
    "); }, error: function (data) { console.log("error:"+error); console.log(data); }, }); }; /*********************************************** * IMAGE MANIPULATION **********************************************/ function imageLoaded(){ Marvin.scale(image.clone(), image, 120); form.append("blob", image.toBlob()); }
    
    
    



提交回复
热议问题