Witam mam problem na vps, na zwykłym serwerze ten skrypt działa
kod błędu z var_dump()
array(1) { ["upload_submit"]=> array(5) { ["name"]=> array(1) { [0]=> string(9) "Koala.jpg" } ["type"]=> array(1) { [0]=> string(10) "image/jpeg" } ["tmp_name"]=> array(1) { [0]=> string(14) "/tmp/php0B7Scp" } ["error"]=> array(1) { [0]=> int(0) } ["size"]=> array(1) { [0]=> int(780831) } } }
skrypt:
<div class="news" style="font-size: 15px;">
<h1>Dodaj fotkę</h1>
<br/><br/>
<center>
<?php
$config['thumbnail_width'] = 180; // maksymalna szerokoć miniatury w pikselach
$config['thumbnail_height'] = 160; // maksymalna wysokoć miniatury w pikselach
$config['thumbnail_scale'] = true; // czy przy minimalizowaniu wielkoci zachowywać skalę?
$config['path_images'] = 'upload/'; // cieżka do katalogu grafik
$config['path_thumbnails'] = 'upload/thumbnails/'; // cieżka do katalogu miniatur
$config['max_file_size'] = 1048576; // maksymalna wielkoć pliku w bajtach, 1MB
$config['accepted_extensions'] = array('jpg', 'jpeg'); // dozwolone rozszerzenia $config['accepted_mimes'] = array('image/jpg', 'image/jpeg'); // dozwolone typy MIME
function generateThumbnail($filename, $extension)
{
// stworzenie nowej grafiki wg typu
switch ( $extension )
{
default:
$ic = imagecreatefromjpeg($config['path_images'] . $filename);
break;
}
if ( $ic === false )
{
return 'Miniaturka nie stworzona!';
}
$is = getimagesize($config['path_images'] . $filename); // [0] - szerokoć, [1] - wysokoć switch ( $config['thumbnail_scale'] )
{
case false: // zmniejszanie bezporednio do 180x160px
$nts = imagecreatetruecolor($config['thumbnail_width'], $config['thumbnail_height']);
imagecopyresized($nts, $ic, 0, 0, 0, 0, $config['thumbnail_width'], $config['thumbnail_height'], $is[0], $is[1]);
break;
default: // zmniejszanie z zachowaniem skali, aż do osiągnięcia co najmniej 180x160px
$width = $is[0];
$height = $is[1];
$ratio = $is[0] / $config['thumbnail_width'];
if ( $ratio > 1 )
{
$width = $config['thumbnail_width'];
$height = intval($is[1
] / $ratio); }
$ratio = $height / $config['thumbnail_height'];
if ( $ratio > 1 )
{
$width = intval($width / $ratio); $height = $config['thumbnail_height'];
}
$nts = imagecreatetruecolor($width, $height); // utworzenie obrazka o podanych rozmiarach z czarnym tłem
imagecopyresized($nts, $ic, 0, 0, 0, 0, $width, $height, $is[0], $is[1]); break;
}
switch ( $extension ) // zapis do pliku
{
default:
imagejpeg($nts, $config['path_thumbnails'] . $filename);
break;
}
imagedestroy($nts); // zniszczenie obrazka
return $config['path_thumbnails'] . $filename;
}
if (!empty($_POST['sent'])) { if (!empty($_POST['nick']) && (!empty($_FILES['upload_submit']))) { // pętla analizująca zawartoć wszystkich trzech potencjalnie wysyłanych plików
foreach ( $_FILES['upload_image']['error'] as $key => $arr )
{
if ( $_FILES['upload_image']['error'][$key] != UPLOAD_ERR_OK )
{
// błąd wysyłania pliku
continue;
}
if ( $_FILES['upload_image']['size'][$key] > $config['max_file_size'] )
{
// plik jest za duży
continue;
}
$extension = explode('.', $_FILES['upload_image']['name'][$key]);
$l = rand(100
,999
); // Losowanie Liczby
$name2x = time() * $l; //Generowanie Nazwy czas * liczba
$namenowa = "$name2x.$extension[1]"; //Nowa nazwa z rozszerzeniem
if ( in_array(strtolower($extension[count($extension)-1
]), $config['accepted_extensions']) === false || in_array($_FILES['upload_image']['type'][$key], $config['accepted_mimes']) === false ) {
// niepoprawne rozszerzenie pliku
continue;
}
$image = getimagesize($_FILES['upload_image']['tmp_name'][$key]); if ( !is_array($image) || $image[0] < 1 ) {
// plik graficzny jest spreparowany
continue;
}
{
// plik nie został wysłany
continue;
}
if ( !move_uploaded_file($_FILES['upload_image']['tmp_name'][$key], $config['path_images'] . $namenowa) ) {
// wysyłanie nie może zostać zakończone poprawnie
continue;
}
// wysyłanie pliku powiodło się!
// opcjonalnie, jeżeli chcemy tylko z poziomu skrypt mieć dostęp do plików możemy odkomentować poniższa linijkę
// chmod($config['path_images'] . $_FILES['upload_image']['name'][$key], 0600);
mysql_query("INSERT INTO images (filename, name, active) VALUES ('$namenowa', '$namen', '0')"); print generateThumbnail
($namenowa, $extension[count($extension)-1
]); // funkcja tworząca miniaturkę }
} else { echo '<font color="red">Wypełnij wszystkie pola!</font>'; }
}
?>
<form method="post" action="" enctype="multipart/form-data">
<table>
<tr><td>Nick:</td><td><input type="text" name="nick" value="" placeholder="Wpisz ksywkę"/></td></tr>
<tr><td></td><td></td></tr>
<tr style="padding-top: 10px;"><td>Fotka:</td><td><input type="file" name="upload_submit[]"/></td></tr>
</table><br /><br />
<input type="submit" value="Wyślij" name="sent" />
</form>
</center>
</div>
Ten post edytował armind 27.11.2013, 14:26:30