Visualizzazione dei risultati da 1 a 3 su 3
  1. #1

    ajax form - problemi su iphone e ipad

    salve ragazzi... piccolo problema da risolvere, ho scaricato uno script che esegue l'upload di immagini con barra di progresso... ora, il problema è che l'upload sul pc si esegue perfettamente mentre sull'ipad e sull'iphone ( e non ho provato altri dispositivi mobile ) a memoria svuotata ne caricare una e se carico altre mi visualizza sempre la prima non eseguendo l'upload... come risolvo ?
    questo è il form
    codice:
    <div id="output"></div>
    <div class="buttonphoto">
    <div id="statustxt">Select photo</div >
    <div id="progressbox">
    <div id="progressbar"></div >
    </div>
    <div class="fomrpho">
    <form action="processupload.php" method="post" enctype="multipart/form-data" id="UploadForm">
    <input name="ImageFile" type="file" />
    </form>
    </div>
    </div>
    questo lo script che esegue l'ajaxForm

    codice:
    $(document).ready(function() {
    	 
    	 $("input[name='ImageFile']").change(function(){
        	$('#UploadForm').submit();
    		}); 
    		
    		//elements
    		var progressbox 	= $('#progressbox');
    		var progressbar 	= $('#progressbar');
    		var statustxt 		= $('#statustxt');
    		var myform 			= $("#UploadForm");
    		var output 			= $("#output");
    		var completed 		= '0%';
    
    		
    				$(myform).ajaxForm({
    					beforeSend: function() { //brfore sending form
    						statustxt.empty();
    						progressbox.show(); //show progressbar
    						progressbar.width(completed); //initial value 0% of progressbar
    						
    					},
    					uploadProgress: function(event, position, total, percentComplete) { //on progress
    						progressbar.width(percentComplete + '%') //update progressbar percent complete
    						
    
    					
    						},
    					complete: function(response) { // on complete
    					
    						output.html(response.responseText); //update element with received data
    						myform.resetForm();  // reset form
    						progressbox.hide(); // hide progressbar
    						statustxt.html('Select photo'); //set status text
    						var lacacca = output.find('img').attr('src');
    						$('#mask-a').attr('onclick', 'closeEverything("' + lacacca + '");');
    						$('#postit').attr('action', 'photo.php?url=' + lacacca);
    						setTimeout(function() {
        					$('#wrap').masonry( 'reload');
    						}, 500);
    						
    						
    					}
    					
    			});
    			
    			return false;
    			
    			
    			
    			
    			
            });
    questa la pagina dove si esegue l'upload

    Codice PHP:

    <noscript>
    <div align="center">[url="index.php"]Go Back To Upload Form[/url]</div>
    </noscript>

    <?php


    if(isset($_POST)) 
    {    
        
    //settaggi

        
    $ThumbSquareSize         600
        
    $BigImageMaxSize         640
        
    $ThumbPrefix            "temp_"
        
    $DestinationDirectory    'file_temp/'
        
    $Quality                 90;

        if(!isset(
    $_FILES['ImageFile']) || !is_uploaded_file($_FILES['ImageFile']['tmp_name']))
        {
                die(
    'Something went wrong with Upload!'); 
        }
        
        
    //verifico formato
        
        
    $RandomNumber     rand(09999999999); 

        
    $ImageName         str_replace(' ','-',strtolower($_FILES['ImageFile']['name'])); 
        
    $ImageSize         $_FILES['ImageFile']['size']; 
        
    $TempSrc         $_FILES['ImageFile']['tmp_name']; 
        
    $ImageType         $_FILES['ImageFile']['type']; 

        switch(
    strtolower($ImageType))
        {
            case 
    'image/png':
                
    $CreatedImage =  imagecreatefrompng($_FILES['ImageFile']['tmp_name']);
                break;
            case 
    'image/gif':
                
    $CreatedImage =  imagecreatefromgif($_FILES['ImageFile']['tmp_name']);
                break;            
            case 
    'image/jpeg':
            case 
    'image/pjpeg':
                
    $CreatedImage imagecreatefromjpeg($_FILES['ImageFile']['tmp_name']);
                break;
            default:
                die(
    'Unsupported File!'); 
        }
        
        
    //recupero informazioni
        
        
    list($CurWidth,$CurHeight)=getimagesize($TempSrc);

        
    $ImageExt substr($ImageNamestrrpos($ImageName'.'));
          
    $ImageExt str_replace('.','',$ImageExt);

        
    $ImageName         preg_replace("/\\.[^.\\s]{3,4}$/"""$ImageName); 

        
    $NewImageName $RandomNumber.'.'.$ImageExt;

        
    $thumb_DestRandImageName     $DestinationDirectory.$ThumbPrefix.$NewImageName
        
    $DestRandImageName             $DestinationDirectory.$NewImageName
        
        
    //creo immagine

        
    if(resizeImage($CurWidth,$CurHeight,$BigImageMaxSize,$DestRandImageName,$CreatedImage,$Quality,$ImageType))
        {
            
            if(!
    cropImage($CurWidth,$CurHeight,$ThumbSquareSize,$thumb_DestRandImageName,$CreatedImage,$Quality,$ImageType))
                {
                    echo 
    'Error Creating thumbnail';
                }

            list(
    $ResizedWidth,$ResizedHeight)=getimagesize($DestRandImageName); ?>

            <div class="thumbphoto" onclick="stampa('<? echo $DestRandImageName ?>');">
            [img]file_temp/<? echo $ThumbPrefix.$NewImageName ?>[/img]
            </div>
            
            <?
            
        
    }else{
            die(
    'Resize Error'); 
        }

    }

    //resize

    function resizeImage($CurWidth,$CurHeight,$MaxSize,$DestFolder,$SrcImage,$Quality,$ImageType)
    {

        if(
    $CurWidth <= || $CurHeight <= 0
        {
            return 
    false;
        }

        
    $ImageScale          min($MaxSize/$CurWidth$MaxSize/$CurHeight); 
        
    $NewWidth              ceil($ImageScale*$CurWidth);
        
    $NewHeight             ceil($ImageScale*$CurHeight);
        
        if(
    $CurWidth $NewWidth || $CurHeight $NewHeight)
        {
            
    $NewWidth $CurWidth;
            
    $NewHeight $CurHeight;
        }
        
    $NewCanves     imagecreatetruecolor($NewWidth$NewHeight);

        if(
    imagecopyresampled($NewCanves$SrcImage,0000$NewWidth$NewHeight$CurWidth$CurHeight))
        {
            switch(
    strtolower($ImageType))
            {
                case 
    'image/png':
                    
    imagepng($NewCanves,$DestFolder);
                    break;
                case 
    'image/gif':
                    
    imagegif($NewCanves,$DestFolder);
                    break;            
                case 
    'image/jpeg':
                case 
    'image/pjpeg':
                    
    imagejpeg($NewCanves,$DestFolder,$Quality);
                    break;
                default:
                    return 
    false;
            }
            
        if(
    is_resource($NewCanves)) {imagedestroy($NewCanves);} 
        return 
    true;
        }

    }

    //crop
    function cropImage($CurWidth,$CurHeight,$iSize,$DestFolder,$SrcImage,$Quality,$ImageType)
    {     

        if(
    $CurWidth <= || $CurHeight <= 0
        {
            return 
    false;
        }
        
        if(
    $CurWidth>$CurHeight)
        {
            
    $y_offset 0;
            
    $x_offset = ($CurWidth $CurHeight) / 2;
            
    $square_size     $CurWidth - ($x_offset 2);
        }else{
            
    $x_offset 0;
            
    $y_offset = ($CurHeight $CurWidth) / 2;
            
    $square_size $CurHeight - ($y_offset 2);
        }
        
        
    $NewCanves     imagecreatetruecolor($iSize$iSize);    
        if(
    imagecopyresampled($NewCanves$SrcImage,00$x_offset$y_offset$iSize$iSize$square_size$square_size))
        {
            switch(
    strtolower($ImageType))
            {
                case 
    'image/png':
                    
    imagepng($NewCanves,$DestFolder);
                    break;
                case 
    'image/gif':
                    
    imagegif($NewCanves,$DestFolder);
                    break;            
                case 
    'image/jpeg':
                case 
    'image/pjpeg':
                    
    imagejpeg($NewCanves,$DestFolder,$Quality);
                    break;
                default:
                    return 
    false;
            }

        if(
    is_resource($NewCanves)) {imagedestroy($NewCanves);} 
        return 
    true;
        }
          
    }
    Ripeto sui pc funziona, su iphone e ipad no

  2. #2
    risolto da solo in ogni caso pubblico la soluzione


    $.ajaxSetup({
    headers: { "cache-control": "no-cache" }
    });

  3. #3
    Moderatore di Annunci siti web, Offro lavoro/collaborazione, Cerco lavoro L'avatar di cavicchiandrea
    Registrato dal
    Aug 2001
    Messaggi
    26,133
    Io ho testato questo su Ipad 3 e il progressbar funziona regolarmente, mentre su samsung s3 esegue upload ma non mostra il progressbar in avanzamento, se non è lo stesso script usa questo
    Cavicchi Andrea
    Problemi con javascript, jquery, ajax clicca qui

Permessi di invio

  • Non puoi inserire discussioni
  • Non puoi inserire repliche
  • Non puoi inserire allegati
  • Non puoi modificare i tuoi messaggi
  •  
Powered by vBulletin® Version 4.2.1
Copyright © 2026 vBulletin Solutions, Inc. All rights reserved.