[jQuery] Upload zdjęć, problem PILNE - Wersja do druku
+- Forum Webmastera, HTML, CSS, PHP, MySQL, Hosting, Domeny - Forum dla Webmasterów (https://www.webmastertalk.pl)
+-- Dział: Technologie internetowe - tworzenie stron WWW (https://www.webmastertalk.pl/forum-technologie-internetowe-tworzenie-stron-www)
+--- Dział: xHTML, CSS, JavaScript (https://www.webmastertalk.pl/forum-xhtml-css-javascript)
+--- Wątek: [jQuery] Upload zdjęć, problem PILNE (/thread-jquery-upload-zdjec-problem-pilne)
|
[jQuery] Upload zdjęć, problem PILNE - Lampek - 25-08-2011
Witam mam na stronce upload w jQuery i flashu. Pierwotnie zdjęcia zapisywały się w katalogu na ale ze wzgledu na to że chce zrobić galerie żeby każdy użytkownik mógł sobie przeglądać swoje materiały postanowiłem zmienić ten uplad tak żeby zdjęcia zapisywały się w bazie danych i mam problem do bazy nic się nie zapisuje niestaty :/
tu mam skrypt do uploadu u jQuery
Kod: $(function(){
$('#swfupload-control').swfupload({
upload_url: "upload-file.php",
file_post_name: 'uploadfile',
file_size_limit : "1024",
file_types : "*.jpg;*.png;*.gif",
file_types_description : "Image files",
file_upload_limit : 20,
flash_url : "js/swfupload/swfupload.swf",
button_image_url : 'js/swfupload/wdp_buttons_upload_114x29.png',
button_width : 114,
button_height : 29,
button_placeholder : $('#button')[0],
debug: false
})
.bind('fileQueued', function(event, file){
var listitem='<li id="'+file.id+'" >'+
'Plik: <em>'+file.name+'</em> ('+Math.round(file.size/1024)+' KB) <span class="progressvalue" ></span>'+
'<div class="progressbar" ><div class="progress" ></div></div>'+
'<p class="status" >Oczekuję</p>'+
'<span class="cancel" > </span>'+
'</li>';
$('#log').append(listitem);
$('li#'+file.id+' .cancel').bind('click', function(){
var swfu = $.swfupload.getInstance('#swfupload-control');
swfu.cancelUpload(file.id);
$('li#'+file.id).slideUp('fast');
});
$(this).swfupload('startUpload');
})
.bind('fileQueueError', function(event, file, errorCode, message){
alert('Rozmiar zdjęcia '+file.name+' jest większy niż dozwolony');
})
.bind('fileDialogComplete', function(event, numFilesSelected, numFilesQueued){
$('#queuestatus').text('Wybranych zdjęć: '+numFilesSelected+' / Pliki w wrzucone: '+numFilesQueued);
})
.bind('uploadStart', function(event, file){
$('#log li#'+file.id).find('p.status').text('Uploading...');
$('#log li#'+file.id).find('span.progressvalue').text('0%');
$('#log li#'+file.id).find('span.cancel').hide();
})
.bind('uploadProgress', function(event, file, bytesLoaded){
//pokazuje postęp
var percentage=Math.round((bytesLoaded/file.size)*100);
$('#log li#'+file.id).find('div.progress').css('width', percentage+'%');
$('#log li#'+file.id).find('span.progressvalue').text(percentage+'%');
})
.bind('uploadSuccess', function(event, file, serverData){
var item=$('#log li#'+file.id);
item.find('div.progress').css('width', '100%');
item.find('span.progressvalue').text('100%');
var pathtofile='<a href="uploads/'+file.name+'" target="_blank" rel="nofollow" >Zobacz ?</a>';
item.addClass('success').find('p.status').html('Gotowe!!! | '+pathtofile);
})
.bind('uploadComplete', function(event, file){
//upload zakończony
$(this).swfupload('startUpload');
})
});
natomiast tutaj jest kod funkcji z pliku ulpad-file.php
Kod PHP: <?php require_once('funkcje_all.php'); $lacz = lacz_bd(); $fhandle = fopen($_FILES['zdjecie']['tmp_name'], "r"); $content = base64_encode(fread($fhandle, $_FILES['zdjecie']['size'])); fclose($fhandle); $zapytanie = $lacz->query("INSERT INTO zdjecia VALUES '".$content."'"); ?>
RE: [jQuery] Upload zdjęć, problem PILNE - Pedro84 - 25-08-2011
Poczytaj to: http://www.hockinson.com/index.php?s=37 dlaczego wrzucanie plików do bazy to głupi pomysł.
Teraz tak, poczytaj jak powinno się poprawnie uploadować pliki, a potem dlaczego musisz plik mieć najpierw na serwerze (bo w tym konkretnym przypadku, Ty chcesz go w locie do bazy zapisać ).
RE: [jQuery] Upload zdjęć, problem PILNE - Kartofelek - 25-08-2011
Oczywiście Pedro ma rację 
Drogi Lampku - jak coś zmieniasz to uważaj by nie robić błędów.
Kod: //JS
file_post_name: 'uploadfile',
Kod: //PHP
$_FILES['uploadfile']['tmp_name']
u ciebie zmieniłeś uploadfile na zdjecie - ale ci nie wyszło ...
RE: [jQuery] Upload zdjęć, problem PILNE - Lampek - 25-08-2011
Zmieniłem upload-file.php na cos takiego że zdjęcia są zapisywane na serverze na kadalogu uploads, a w bazie danych jest zapisywana do niech tylko ścieżka, ale niestety żadnej ścieżki mi nie zapisuje :/ Wygląda to tak:
Kod PHP: <?php //session_start(); require_once('funkcje_all.php'); $uploaddir = './uploads/'; $file = $uploaddir . basename($_FILES['uploadfile']['name']); $size=$_FILES['uploadfile']['size']; $lacz = lacz_bd(); if($size>1048576) { echo "error file size > 1 MB"; unlink($_FILES['uploadfile']['tmp_name']); exit; } if(file_exists($file)) //sprawdzanie czy plik istnieje { srand(time()); $file = 'uploads'.rand(1,100000000).$file; }
if (move_uploaded_file($_FILES['uploadfile']['tmp_name'], $file)) { echo "success"; } else { echo "error ".$_FILES['uploadfile']['error']." --- ".$_FILES['uploadfile']['tmp_name']." %%% ".$file."($size)"; } $wynik = $lacz->query("insert into uzytkownik values 'michal', '$file'");
?>
RE: [jQuery] Upload zdjęć, problem PILNE - Kartofelek - 25-08-2011
to jest ciekawy warunek:
Kod: if (move_uploaded_file($_FILES['uploadfile']['tmp_name'], $file)) {
echo "success";
} else {
echo "error ".$_FILES['uploadfile']['error']." --- ".$_FILES['uploadfile']['tmp_name']." %%% ".$file."($size)";
}
$wynik = $lacz->query("insert into uzytkownik values 'michal', '$file'");
Czyli nie ważne czy udało cię zapisać plik czy nie to i tak go wrzucasz do bazy...
Kolego nie możesz trochę dłużej na tym posiedzieć? "Wyechować" konkretne zmienne, sprawdzić co ci zwraca ajax w firebugu?
Czy ten skrypt staje na exit? Czy może coś wypisuje? Użyj Firebuga.
No i przydały by się nawiasy w zapytaniu insert http://www.w3schools.com/php/php_mysql_insert.asp
|