Usamos cookies para medir audiência e melhorar sua experiência. Você pode aceitar ou recusar a qualquer momento. Veja sobre o iMasters.
Ola tenho o seguinte script de multiplo upload de imagens em php, e o mesmo esta funcionando perfeitamente, porém ele salva as imagens no diretório e no banco de dados, o nome do arquivo, e eu gostaria que ao invés disso ele salvasse em md5 juntamente com a data do dia para evitar repetições, alguem pode me ajudar?
Já tentei mas não consegui integrar no script.
Segue abaixo o script:
<?php
/**
* Conexão Mysql
*/
$conn = mysql_connect('localhost', 'root', '');
$db = mysql_select_db('db');
$file = $_FILES['Filedata'];
$album = (int) $_POST['id'];
$filename = $file['name'];
$query = "INSERT INTO albums_photos (album, file) VALUES ('$album', '$filename')";
mysql_query($query);
$path = $file['tmp_name'];
$new_path = "../../uploads/".$file['name'];
move_uploaded_file($path, $new_path);
// Vamos usar a biblioteca WideImage para o redimensionamento das imagens
require("../../lib/WideImage/WideImage.php");
// Carrega a imagem enviada
$original = WideImage::load($new_path);
// Redimensiona a imagem original para 1024x768 caso ela seja maior que isto e salva
$original->resize(640, 480, 'inside', 'down')->saveToFile($new_path, null, 90);
// Cria a miniatura
$ext = end(explode(".", $new_path)); // Pega a extensão do arquivo
$thumb = str_replace(".$ext", "_thumb.$ext", $new_path); // Substitui a extensão
$original->resize(100, 75, 'inside', 'down')->saveToFile($thumb, null, 90); // Redimensiona e salva
echo mysql_insert_id(); // Retorna o id da foto
?>
Cara outro probleminha, o script de upload exibi as imagens em minuaturas quando enivadas, porém agora que esta em md5 nao aparece mais: veja no print: http://imageshack.us/photo/my-images/528/printkj.png/
Segue abaixo o codigo do upload:
<script type="text/javascript" src="http://ajax.googleapis.com/ajax/libs/jquery/1.3.2/jquery.min.js"></script>
<script type="text/javascript" src="http://ajax.googleapis.com/ajax/libs/swfobject/2.2/swfobject.js"></script>
<script type="text/javascript" src="../../js/multiUpload.js"></script>
<script type="text/javascript">
var uploader = "";
$(function() {
$("#album").submit(function() {
// Não continue caso já exista uma instância do multiUploader
if (typeof uploader == "object")
return false;
var data = $(this).serialize(); // Dados do formulário
$(":text,textarea").attr("disabled", "disabled"); // Desabilitar os textos
// Envia o formulário via Ajax
$.ajax({
type: "POST",
url: "savealbum.php",
data: data,
cache: false,
dataType: "json",
success: function(json)
{
if (json.id > 0) // Se recebemos um id então o álbum foi salvo com sucesso
{
// Cria uma instância do multiUpload
uploader = new multiUpload('uploader', 'uploader_files', {
swf: '../../swf/multiUpload.swf',
script: 'upload.php',
expressInstall: '../../swf/expressInstall.swf',
multi: true,
data: json, // Envia a variável json para o script de upload (com o id do álbum)
fileDescription: 'JPEG Images',
fileExtensions: '.jpg;.jpeg',
onComplete: function(e)
{
var id = e.data; // O id retornado
var file = $("#file_"+e.id+" div:first").text(); // Nome do arquivo
var ext = file.split('.').pop(); // Extensão do arquivo
var thumb = file.replace('.'+ext, '_thumb.'+ext); // Miniatura
var $caption = $('<div class="caption" rel="'+id+'"><input type="text" name="Caption" value="Descrição da imagem" /></div>');
var $button = $('<input type="button" value="Salvar" class="save" />').click(function() {
$.post("savecaption.php", { id: $(this).parent().attr("rel"), caption: $(this).prev().val() }, function(data){
$caption.html('<strong>'+data+'</strong>');
});
});
$("#file_"+e.id+" div:first").prepend('<img src="../../uploads/'+thumb+'" width="64" height="48" /><br/>')
.append($caption.append($button));
}
});
// Cria o html base para listagem dos arquivos selecionados e barra de progresso
uploader.createBaseHtml();
// Mostra as ações (Iniciar Upload, limpar fila)
$(".upload_actions").show();
}});
return false; // Previne o form de ser enviado pela forma normal
});
$(":text,textarea").removeAttr("disabled");
});
</script>O que tem no arquivo savealbum.php, o que ele retorna para o ajax? é arquivo exibido acima?
Arquivo salvealbum.php
<?php
/**
* Mysql Connection
*/
$conn = mysql_connect('localhost', 'root', '');
$db = mysql_select_db('db');
$title = addslashes($_POST['title']);
$description = addslashes($_POST['description']);
if (!empty($title) && !empty($description))
{
$query = "INSERT INTO albums (title, description) VALUES ('$title', '$description')";
if (mysql_query($query))
{
$json = array();
$json["id"] = mysql_insert_id();
die(json_encode($json));
} error("Erro ao salvar o album.");
}error("Preencha todos os campos.");
function error($msg)$json = array();
$json["id"] = 0;
$json["msg"] = "Erro: $msg";
die(json_encode($json));
}
?>Cara,
nesse post aqui eu exemplifiquei para um outro usuario como eu faço nesse caso, usando uma função.
http://forum.imasters.com.br/topic/466212-banco-de-dados-mysql/page__p__1847641#entry1847641
De uma olhada, pois acho que lah existe a solução que voce necessita.
Olá, Aqui ten exatamente isso, e um outro tópico aqui o Imasters tem também exatamente o mesmo código e a mesma dúvida! Se quiser está aqui. Boa sorte.