Autor | Zpráva | ||
---|---|---|---|
unlucky Profil |
#1 · Zasláno: 11. 5. 2011, 10:53:05 · Upravil/a: unlucky
edit: vyřešeno. Zapomněl jsem, že atribut width u thumb není :P
ráno moudřejší no Mám adr strukturu /root/admin/clanky.php /root/admin/pages/upload.php /root/admin/includy/thumb.php adresář, kam se uloží obrázky a thumbs /uploads/articles/ /uploads/articles/thumbs/ Situace je taková. V clanky.php je editor pro přidávání článků. Pomocí ajax uploadnu obrázek (upload.php a kód se vloží do textarea). Chci, aby se mi s uploadem zároveň udělal i thumbnail. Ale toto mi hlásí chybu, že imagecreate selhalo. Zkoušel jsem dát adresy typu ../../adresář/obrázek.jpg a ../adr/obr.jpg atd... ale všechny hlásí stejný error. Přitom se mi vytvořil adresář. zde je UPLOAD <?php $subfolder =''; // neco/ if ($_POST["from"]=="article") { define('_ARTICLE_ATTACH_DIR','../../uploads/articles/'); } if ($_POST["from"]=="gallery") { define('_ARTICLE_ATTACH_DIR','../../uploads/gallery/'); } session_start(); header('Content-Type: text/plain; charset=utf-8'); $whitelist = array('.jpg', '.gif', '.png', '.jpeg'); $allowed_type = array('application/octet-stream'); $upload_errors = array( 1 => "The uploaded file exceeds the upload_max_filesize directive in php.ini", 2 => "The uploaded file exceeds the MAX_FILE_SIZE directive", 3 => "The uploaded file was only partially uploaded", 4 => "No file was uploaded", 6 => "Missing a temporary folder" ); if ('' != $_POST['Filename'] && is_array($_FILES['Filedata'])) { $file = $_FILES['Filedata']; $ext = strtolower(array_pop(explode('.', $file['name']))); $ext = '.'. $ext; if (in_array($ext, $whitelist) && in_array($file['type'], $allowed_type)) { if ($file['error'] == 0) { if ($file['size'] > 0) { $nname= strtolower(str_replace(" ","_",$file['name'])); $new_name = rand(1, 100) . $nname; $uploadFile = _ARTICLE_ATTACH_DIR . $new_name; $move = @move_uploaded_file($file['tmp_name'], $uploadFile); if ($move !== false) { $img = getimagesize($uploadFile); $repaired_path=str_replace("../../","",_ARTICLE_ATTACH_DIR); $img_path="../$subfolder$repaired_path"; $html = '<img src="'. $img_path . $new_name .'" width="'. $img[0] .'" height="'. $img[1] .'"'; $html .= ' align="left" vspace="" hspace="" border="0" alt="" />'; echo $html; //zde bude thumb thumb(_ARTICLE_ATTACH_DIR.$new_name,_ARTICLE_ATTACH_DIR."thumbs/",$setup['thumb_width'] ) ; exit(); } else { $error = 'The uploaded file could not be moved.'; echo $uploadFile; } } else { $error = 'File is empty. This error could also be caused by uploads being disabled in your php.ini.'; } } else { $error = $upload_errors[$file['error']]; } } else { $error = 'Invalid file type.'; } } else { $error = 'Select a file first.'; } if (strlen($error) > 0) { echo '<div class="info_msg_err" id="_error_">'. $error .'</div>'; } exit(); ?> Zde je thumb function thumb( $pathToImages, $pathToThumbs, $thumbWidth ){ if (!is_dir($pathToThumbs)) { mkdir($pathToThumbs); } //$aa=split("/", $pathToImages); //$poceta=count($aa); //$fname =$aa[$poceta-1]; $fname=basename($pathToImages); $type=strtolower(str_replace(".","",substr($pathToImages,-4))); if ($type=="jpeg" or $type=="jpg"){ $img=imagecreatefromjpeg($pathToImages); } if ($type=="png"){ $img=imagecreatefrompng($pathToImages); } if ($type=="gif"){ $img=imagecreatefromgif($pathToImages); } $width = imagesx( $img ); $height = imagesy( $img ); // calculate thumbnail size $new_width = $thumbWidth; $new_height = floor( $height * ( $thumbWidth / $width ) ); // create a new temporary image $tmp_img = imagecreatetruecolor( $new_width, $new_height ); // copy and resize old image into new image imagecopyresized( $tmp_img, $img, 0, 0, 0, 0, $new_width, $new_height, $width, $height ); $changed_name=str_replace(".","_.",$fname); $final_name=$pathToThumbs.$changed_name; if ($type=="jpeg" or $type=="jpg"){ imagejpeg( $tmp_img, $final_name); } if ($type=="png"){ imagepng( $tmp_img, $final_name); } if ($type=="gif"){ imagegif( $tmp_img, $final_name); } $pix[]= $pathToImages; $pix[]=$pathToThumbs.$fname; return $pix; } |
||
Anonymní Profil * |
#2 · Zasláno: 11. 5. 2011, 13:00:00
A nemělo by náhodou být
session_start() |
||
Keeehi Profil |
#3 · Zasláno: 11. 5. 2011, 13:07:53
Anonymní:
Nemusí, takto je to taky v pořádku. |
||
Časová prodleva: 13 let
|
0