Ir para conteúdo

POWERED BY:

Arquivado

Este tópico foi arquivado e está fechado para novas respostas.

tiagocaus

[Resolvido] redimensionamento de imagem para Multi Upload

Recommended Posts

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

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

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

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

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

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

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

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

×

Informação importante

Ao usar o fórum, você concorda com nossos Termos e condições.