tiagocaus 1 Denunciar post Postado Abril 14, 2011 Bom dia Pessoal! Estava a procura de uma ferramenta fácil para enviar várias imagens de uma única vez e achei um codigo em jQuery. Mas esse código só faz o upload, não faz o redimensionamento das imagens, ou seja se o enviar uma imagem que tem 2340px de largura ela vai... e não é essa intenção. Eu gostaria da ajuda de vocês para saber como se faz para que esse código realize o redimensionamento das imagens, eu determino a qualidade, largura e ele coloca a altura proporcional a largura. O site com o código é esse: http://aquantum-demo.appspot.com/file-upload Se alguém poder me ajudar.... Compartilhar este post Link para o post Compartilhar em outros sites
tiagocaus 1 Denunciar post Postado Abril 14, 2011 Olá só, pesquisando na internet encontrei exatamente o que preciso (http://www.plupload.com/example_queuewidget.php), mas em termos... Eu preciso que ele envie para um determinada pasta, pois cada álbum de fotos em seu nome: EX: album_de_teste_1 album_de_teste_2 Quando eu clico para cadastrar a foto estou fazendo assim: albumdefotosEnviarFotos.php?pasta=album_de_teste_1 Código que carrega o upload da foto [albumdefotosEnviarFotos.php]: <?php $pasta = $_GET["pasta"]; ?> <!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Transitional//EN" "http://www.w3.org/TR/xhtml1/DTD/xhtml1-transitional.dtd"> <html xmlns="http://www.w3.org/1999/xhtml"><!-- InstanceBegin template="/Templates/Express.dwt.php" codeOutsideHTMLIsLocked="false" --> <head> <meta http-equiv="Content-Type" content="text/html; charset=utf-8" /> <!-- InstanceBeginEditable name="doctitle" --> <title></title> <link rel="stylesheet" href="http://ajax.googleapis.com/ajax/libs/jqueryui/1.8.9/themes/base/jquery-ui.css" type="text/css" /> <link rel="stylesheet" href="plupload/js/jquery.ui.plupload/css/jquery.ui.plupload.css" type="text/css" /> <script type="text/javascript" src="http://ajax.googleapis.com/ajax/libs/jquery/1.5.1/jquery.min.js"></script> <script type="text/javascript" src="https://ajax.googleapis.com/ajax/libs/jqueryui/1.8.9/jquery-ui.min.js"></script> <script type="text/javascript" src="http://bp.yahooapis.com/2.4.21/browserplus-min.js"></script> <script type="text/javascript" src="plupload/js/plupload.js"></script> <script type="text/javascript" src="plupload/js/plupload.gears.js"></script> <script type="text/javascript" src="plupload/js/plupload.silverlight.js"></script> <script type="text/javascript" src="plupload/js/plupload.flash.js"></script> <script type="text/javascript" src="plupload/js/plupload.browserplus.js"></script> <script type="text/javascript" src="plupload/js/plupload.html4.js"></script> <script type="text/javascript" src="plupload/js/plupload.html5.js"></script> <script type="text/javascript" src="plupload/js/jquery.ui.plupload/jquery.ui.plupload.js"></script> <!--<script type="text/javascript" src="http://getfirebug.com/releases/lite/1.2/firebug-lite-compressed.js"></script>--> <!-- InstanceEndEditable --> <!-- InstanceBeginEditable name="head" --> <!-- InstanceEndEditable --> <link href="../css/corpo.css" rel="stylesheet" type="text/css" /> </head> <body> <!-- InstanceBeginEditable name="EditRegion1" --> <div id="ajuda_titulo"> <h3>Enviar fotos para o álbum:</h3> </div> <!-- InstanceEndEditable --><!-- InstanceBeginEditable name="EditRegion2" --> <div id="ajuda_mensagem"> <form method="post" action="dump.php"> <div id="uploader"> <p>You browser doesn't have Flash, Silverlight, Gears, BrowserPlus or HTML5 support.</p> </div> </form> <script type="text/javascript"> // Convert divs to queue widgets when the DOM is ready $(function() { $("#uploader").plupload({ // General settings runtimes : 'flash,html5,browserplus,silverlight,gears,html4', url : 'plupload/examples/upload.php', max_file_size : '1000mb', max_file_count: 20, // user can add no more then 20 files at a time chunk_size : '1mb', unique_names : true, multiple_queues : true, // Resize images on clientside if we can resize : {width : 500, height : 375, quality : 90}, // Rename files by clicking on their titles rename: true, // Sort files sortable: true, // Specify what files to browse for filters : [ {title : "Image files", extensions : "jpg,gif,png"}, {title : "Zip files", extensions : "zip,avi"} ], // Flash settings flash_swf_url : 'plupload/js/plupload.flash.swf', // Silverlight settings silverlight_xap_url : 'plupload/js/plupload.silverlight.xap' }); // Client side form validation $('form').submit(function(e) { var uploader = $('#uploader').plupload('getUploader'); // Validate number of uploaded files if (uploader.total.uploaded == 0) { // Files in queue upload them first if (uploader.files.length > 0) { // When all files are uploaded submit form uploader.bind('UploadProgress', function() { if (uploader.total.uploaded == uploader.files.length) $('form').submit(); }); uploader.start(); } else alert('Você deve, pelo menos, fazer upload de um arquivo.'); e.preventDefault(); } }); }); </script> </div> <!-- InstanceEndEditable --> </body> <!-- InstanceEnd --></html> comando que esta dentro do arquivo [upload.php]: <?php /** * upload.php * * Copyright 2009, Moxiecode Systems AB * Released under GPL License. * * License: http://www.plupload.com/license * Contributing: http://www.plupload.com/contributing */ // HTTP headers for no cache etc header("Expires: Mon, 26 Jul 1997 05:00:00 GMT"); header("Last-Modified: " . gmdate("D, d M Y H:i:s") . " GMT"); header("Cache-Control: no-store, no-cache, must-revalidate"); header("Cache-Control: post-check=0, pre-check=0", false); header("Pragma: no-cache"); // Settings //$targetDir = ini_get("upload_tmp_dir") . DIRECTORY_SEPARATOR . "plupload"; $targetDir = '../../../../site/images/albumFotos/$pasta/'; //$cleanupTargetDir = false; // Remove old files //$maxFileAge = 60 * 60; // Temp file age in seconds // 5 minutes execution time @set_time_limit(5 * 60); // Uncomment this one to fake upload time // usleep(5000); // Get parameters $chunk = isset($_REQUEST["chunk"]) ? $_REQUEST["chunk"] : 0; $chunks = isset($_REQUEST["chunks"]) ? $_REQUEST["chunks"] : 0; $fileName = isset($_REQUEST["name"]) ? $_REQUEST["name"] : ''; // Clean the fileName for security reasons $fileName = preg_replace('/[^\w\._]+/', '', $fileName); // Make sure the fileName is unique but only if chunking is disabled if ($chunks < 2 && file_exists($targetDir . DIRECTORY_SEPARATOR . $fileName)) { $ext = strrpos($fileName, '.'); $fileName_a = substr($fileName, 0, $ext); $fileName_b = substr($fileName, $ext); $count = 1; while (file_exists($targetDir . DIRECTORY_SEPARATOR . $fileName_a . '_' . $count . $fileName_B)) $count++; $fileName = $fileName_a . '_' . $count . $fileName_b; } // Create target dir if (!file_exists($targetDir)) @mkdir($targetDir); // Remove old temp files /* this doesn't really work by now if (is_dir($targetDir) && ($dir = opendir($targetDir))) { while (($file = readdir($dir)) !== false) { $filePath = $targetDir . DIRECTORY_SEPARATOR . $file; // Remove temp files if they are older than the max age if (preg_match('/\\.tmp$/', $file) && (filemtime($filePath) < time() - $maxFileAge)) @unlink($filePath); } closedir($dir); } else die('{"jsonrpc" : "2.0", "error" : {"code": 100, "message": "Failed to open temp directory."}, "id" : "id"}'); */ // Look for the content type header if (isset($_SERVER["HTTP_CONTENT_TYPE"])) $contentType = $_SERVER["HTTP_CONTENT_TYPE"]; if (isset($_SERVER["CONTENT_TYPE"])) $contentType = $_SERVER["CONTENT_TYPE"]; // Handle non multipart uploads older WebKit versions didn't support multipart in HTML5 if (strpos($contentType, "multipart") !== false) { if (isset($_FILES['file']['tmp_name']) && is_uploaded_file($_FILES['file']['tmp_name'])) { // Open temp file $out = fopen($targetDir . DIRECTORY_SEPARATOR . $fileName, $chunk == 0 ? "wb" : "ab"); if ($out) { // Read binary input stream and append it to temp file $in = fopen($_FILES['file']['tmp_name'], "rb"); if ($in) { while ($buff = fread($in, 4096)) fwrite($out, $buff); } else die('{"jsonrpc" : "2.0", "error" : {"code": 101, "message": "Failed to open input stream."}, "id" : "id"}'); fclose($in); fclose($out); @unlink($_FILES['file']['tmp_name']); } else die('{"jsonrpc" : "2.0", "error" : {"code": 102, "message": "Failed to open output stream."}, "id" : "id"}'); } else die('{"jsonrpc" : "2.0", "error" : {"code": 103, "message": "Failed to move uploaded file."}, "id" : "id"}'); } else { // Open temp file $out = fopen($targetDir . DIRECTORY_SEPARATOR . $fileName, $chunk == 0 ? "wb" : "ab"); if ($out) { // Read binary input stream and append it to temp file $in = fopen("php://input", "rb"); if ($in) { while ($buff = fread($in, 4096)) fwrite($out, $buff); } else die('{"jsonrpc" : "2.0", "error" : {"code": 101, "message": "Failed to open input stream."}, "id" : "id"}'); fclose($in); fclose($out); } else die('{"jsonrpc" : "2.0", "error" : {"code": 102, "message": "Failed to open output stream."}, "id" : "id"}'); } // Return JSON-RPC response die('{"jsonrpc" : "2.0", "result" : null, "id" : "id"}'); ?> Claro que eu só estou colocando o princial. Só por isso da para entender? Compartilhar este post Link para o post Compartilhar em outros sites
gremio10 14 Denunciar post Postado Abril 14, 2011 A melhor coisa que tu pode fazer é olhar a documentação, sempre tem o que se procura :P Compartilhar este post Link para o post Compartilhar em outros sites
tiagocaus 1 Denunciar post Postado Abril 14, 2011 A melhor coisa que tu pode fazer é olhar a documentação, sempre tem o que se procura :P já fiz, e não tem. Eu só quero levar o valor $pasta do arquivo inicial albumdefotosEnviarFotos.php até upload.php Compartilhar este post Link para o post Compartilhar em outros sites
gremio10 14 Denunciar post Postado Abril 14, 2011 mas ai é só tu dar valores, e assim $pasta direto sem receber nada, vai estar vazio... manda por get ou post o que voce quer que ele fique Compartilhar este post Link para o post Compartilhar em outros sites
tiagocaus 1 Denunciar post Postado Abril 14, 2011 mas ai é só tu dar valores, e assim $pasta direto sem receber nada, vai estar vazio... manda por get ou post o que voce quer que ele fique Amigão, se você ler o que eu já escrevi, deveria ter visto que já estou fazendo isso. O $pasta já tem valor só não sei fazer ele chegar até o destino que é: $targetDir = '../../../../site/images/albumFotos/$pasta/'; Compartilhar este post Link para o post Compartilhar em outros sites
gremio10 14 Denunciar post Postado Abril 14, 2011 Então Amigão, tu nunca atribui valor a essa variavel, poe um valor lá que vai Compartilhar este post Link para o post Compartilhar em outros sites
tiagocaus 1 Denunciar post Postado Abril 14, 2011 Então Amigão, tu nunca atribui valor a essa variavel, poe um valor lá que vai Amigão, do jeito que esta ele esta criando uma pasta chamada /albumFotos/$pasta/p15tabh85fral1lagiv5qa2tn24.jpg e esta colocando a imagem dentro. Dessa forma é a errada... Entende? Compartilhar este post Link para o post Compartilhar em outros sites
Francispansa 6 Denunciar post Postado Abril 14, 2011 Você não pode fazer isso url : 'plupload/examples/upload.php?pasta=<?php echo $pasta; ?>', E depois recuperar a variavel na página upload.php?? Compartilhar este post Link para o post Compartilhar em outros sites
gremio10 14 Denunciar post Postado Abril 14, 2011 $pasta = "minhasFotos/"; $targetDir = "../../../../site/images/albumFotos/{$pasta}"; Compartilhar este post Link para o post Compartilhar em outros sites
tiagocaus 1 Denunciar post Postado Abril 14, 2011 Você não pode fazer isso url : 'plupload/examples/upload.php?pasta=<?php echo $pasta; ?>', E depois recuperar a variavel na página upload.php?? Isso mesmo. Por isso que estou batendo cabeça... Compartilhar este post Link para o post Compartilhar em outros sites
Francispansa 6 Denunciar post Postado Abril 14, 2011 Isso mesmo. Por isso que estou batendo cabeça... Desculpe, não entendi.. Conseguiu resolver ou não? tentou alterar essa linha url : 'plupload/examples/upload.php?pasta=<?php echo $pasta; ?>', E colocar isso na pagina upload.php? <?php $pasta = $_GET["pasta"]; ?> Abrass Compartilhar este post Link para o post Compartilhar em outros sites
tiagocaus 1 Denunciar post Postado Abril 14, 2011 Galera, agora deu certo, graças a Ajuda do gremio10 e Francispansa. As respostas para a solução é: url : 'plupload/examples/upload.php?pasta=<?php echo $pasta; ?>', $targetDir = "../../../../site/images/albumFotos/$pasta"; Compartilhar este post Link para o post Compartilhar em outros sites