<?phpПомогите очень надо сам точно не справлюсь. Зарание большое спасибо.
$messages = array();
$imgDir = dirname(__file__) . "/photo/"; // каталог для хранения изображений
@mkdir($imgDir, 0777); // создаем каталог, если его еще нет
if (isset($_POST['doUpload'])) {
$data = $_FILES['userfile'];
$tmp = $data['tmp_name']; //это просто для удобства
if (@file_exists($tmp)) { //итак, если файл на месте, то
$info = @getimagesize($_FILES['userfile']['tmp_name']); //берем информацию о файле
if (preg_match('{image/(.*)}is', $info['mime'], $p)) { //убеждаемся что файл есть ни что иное как изображение
$newwidth = 400; //в данную переменную мы помещаем желаемую ширину файла
$username = 'имя пользователя'.'.'.substr($info['mime'],6);
$newname = $imgDir.$username;//имя файла оставляем прежним
//осторожно! если файл с таким именем существует, то он будет перезаписан загружаемым
if ($info[0] < $newwidth){ // если ширина загужаемого изображения
//меньше заданной в переменной, просто сохраняем файл
if (move_uploaded_file($_FILES['userfile']['tmp_name'], $newname)) {
$messages[] = "Файл успешно загружен. ";
}
else {
$messages[] = "Ошибка загрузки файла!";
}
}
else {
// а если больше, то ресайзим
// функцию ресайза мы напишем дальше
if(resize($tmp, $newwidth, $newname)){
$messages[] = "Рисунок был успешно загружен и преобразован";
}
else {
$messages[] = "Произошла ошибка при загрузке файла";
}
}
}
else {
$messages[] = "Ошибка! Попытка загрузить файл недопустимого формата.";
}
}
else {
$messages[] = "Файл не был загружен.";
}
}
?>
<ul>
<?php
foreach ($messages as $val) {
echo "<li>" . $val ."</li>";
}
?>
</ul>
<form name="upload" action="upload.php" method="POST" ENCTYPE="multipart/form-data">
Вбери файл для загрузки: <input type="file" name="userfile"></ br>
<input type="submit" name="doUpload" value="Загрузить">
</form>
<?php
function resize($photo_src, $width, $name){
$parametr = getimagesize($photo_src);
list($width_orig, $height_orig) = getimagesize($photo_src);
$ratio_orig = $width_orig/$height_orig;
$new_width = 200;
$new_height = 200;
$newpic = imagecreatetruecolor($new_width, $new_height);
switch ( $parametr[2] ) {
case 1: $image = imagecreatefromgif($photo_src);
break;
case 2: $image = imagecreatefromjpeg($photo_src);
break;
case 3: $image = imagecreatefrompng($photo_src);
break;
}
imagecopyresampled($newpic, $image, 0, 0, 0, 0, $new_width, $new_height, $width_orig, $height_orig);
imagejpeg($newpic, $name, 100);
return true;
}
?>
Спустя 1 час, 52 минуты, 3 секунды (21.09.2012 - 15:52) neadekvat написал(а):
Я бы использовал базу и там сохранял имена файлов, которые загрузил пользователь.
Соответственно, если какая-то аватарка уже была загружена - просто удаляем ее, а уже потом продолжаем заливать новый файл.
Соответственно, если какая-то аватарка уже была загружена - просто удаляем ее, а уже потом продолжаем заливать новый файл.
Спустя 1 час, 11 минут, 2 секунды (21.09.2012 - 17:03) walerus написал(а):
функция unlink(); про нее за одно почитай.