Witam serdecznie - pozostał mi jedynie problem uploadu plików graficznych na serwer. Odkopałem jakiś miły i przejrzysty skrypt ale liczę na Waszą pomoc we wpasowaniu go do mojego kody oraz przede wszystkim zmiany na coś co chciałbym uzyskać. TZN skrypt jest taki:
<?php
$site_name = $_SERVER['HTTP_HOST'];
$url_dir = "http://".$_SERVER['HTTP_HOST'].dirname($_SERVER['PHP_SELF']); $url_this = "http://".$_SERVER['HTTP_HOST'].$_SERVER['PHP_SELF'];
$upload_dir = "upload_files/"; // katalog do uploadu
$upload_url = $url_dir."/upload_files/"; // URL uploadowanego pliku
$mimes = array('image/jpeg','image/jpg'); // dozwolone typy plikow $max_size = 2; // max rozmiar pliku w MB
if (!is_dir($upload_dir)) die ("$upload_dir nie istnieje"); if ($_FILES['userfile']) $message=do_upload($upload_dir, $upload_url);
else $message="Wybierz plik do uploadu (max $max_size MB)";
function do_upload($upload_dir, $upload_url)
{
$temp_name=$_FILES['userfile']['tmp_name'];
$file_name=$_FILES['userfile']['name'];
$file_type=$_FILES['userfile']['type'];
$file_size=$_FILES['userfile']['size'];
$result=$_FILES['userfile']['error'];
$file_url=$upload_url.$file_name;
$file_path=$upload_dir.$file_name;
$max_size*=1024*1024;
echo $max_size." ".$file_size; if (!in_array($file_type,$mimes)) return("Niedozwolony typ pliku: $file_type"); if ($file_size>$max_size) return "Plik ma rozmiar wiekszy niz $max_size MB!";
if ($file_name=="") return("Pusta nazwa pliku!");
chmod($temp_name,0777);
$message="Typ pliku:".$file_type."<br>";
$message.=($result) ? "URL do Twojego pliku: <a href='$file_url'>$file_url</a>" : "";
return $message;
}
?>
<form name="dodaj" method="post" action="
<?php echo basename(__FILE__); ?>" enctype="multipart/form-data" accept-charset="UTF-8" id="nowyForm1">
<input type="file" id="plik" style="position:absolute;left:108px;top:210px;width:378px;height:21px;font-family:'Trebuchet MS';font-size:13px;z-index:4" name="plik" title="Możesz dodawać wyłącznie pliki graficzne z rozszerzeniem *.jpg"/></form>
teraz pytania co chciałbym uzyskać:
- aby pliki wgrywały się docelowo do katalogu "./../db/images" (oznaczenie 'wyjscia' na serwer jest potrzebne bo skrypt bedzie w innym katalogu)
- aby plik przyjmował nazwę zmiennej "$newkod.jpg" (w kodzie mojej strony podanym poniżej)
- aby rozmiar obrazu był zawsze w wysokosci 600px (szerokosc proporcjonalna)
- aby automatycznie byla tworzona miniatura w wielkosci 10% oryginalu z przedrostkiem "tn" - czyli "tn'.$newkod.'.jpg"
- aby to wkomponowac w moj kod:
<?php
$error_message = "";
if ($_SERVER['REQUEST_METHOD'] == 'POST')
{
$action = isset($_POST['action']) ?
$_POST['action'] : ''; $kategoria = $_POST['kategoria'];
$dbasename = $_POST['dbasename'];
$database = './../db/'.$dbasename.'';
$success_page = './nok.php';
{
echo 'Nie odnaleziono bazy danych!'; }
if ($action == 'dodaj')
{
$newkod = $_POST['kod'];
$newopis = $_POST['opis'];
$newcena = $_POST['cena'];
$items = file($database); foreach($items as $line)
{
list
($zdjecie, $kod, $opis, $cena, $status) = explode('|', trim($line)); if ($newkod == $kod)
{
$error_message = 'Wygenerowany kod już istnieje! Odśwież formularz w celu wygenerowania nowego kodu.';
break;
}
}
if (empty($error_message)) {
$file = fopen($database, 'a'); header('Location: '.$success_page); }
}
}
?>
ogromne dzięki z góry za pomoc
Ten post edytował shpaque 15.09.2011, 09:34:50