Форум АНТИЧАТ

Форум АНТИЧАТ (https://forum.antichat.xyz/index.php)
-   PHP, PERL, MySQL, JavaScript (https://forum.antichat.xyz/forumdisplay.php?f=37)
-   -   PHP - загрузка изображения в папку (https://forum.antichat.xyz/showthread.php?t=97180)

Lionis 20.12.2008 15:20

PHP - загрузка изображения в папку
 
Есть папка - "images" /
админка управляющая одним файлом "001.jpg"
надо код вида >>>

http://avoreg.ru/pic_b/147846ed4e042...c75af88891.jpg

---
Обзор - выбор файла на компьютере .
Ниже - картинка которая сейчас загружена в папку .
картинка все время будет одного названия и формата "001.jpg" .
Загрузить - подтверждение , после чего страница обновляется и вместо старого изображения отображается загруженное , это я про "файл который сейчас в папке"
---
спасибо .
буду рад каждому ответу .
И всех с наступающим!!!

ntldr 20.12.2008 16:01

PHP код:

<form enctype="multipart/form-data" action="?" method="post">
<input type="hidden" name="MAX_FILE_SIZE" value="999999">
<input type="file" name="fajl" />
<input type="submit" />
</form>
Файл, который сейчас в папке:<br />
<img src="./images/001.jpg" />
<?php
if (count($_FILES)>0){
    @
move_uploaded_file($_FILES['fajl']['tmp_name'],getcwd()."/images/001.jpg");
}
?>

?

ntldr 20.12.2008 16:07

а лучше так чтобы не кешировалась картинка
PHP код:

<form enctype="multipart/form-data" action="?" method="post">
<input type="hidden" name="MAX_FILE_SIZE" value="999999">
<input type="file" name="fajl" />
<input type="submit" />
</form>
<img src="./images/001.jpg?<?php echo rand(0,10000); ?>" />
<?php
if (count($_FILES)>0){
    @
move_uploaded_file($_FILES['fajl']['tmp_name'],getcwd()."/images/001.jpg");
}
?>


Lionis 20.12.2008 16:30

Цитата:

Сообщение от ntldr
а лучше так чтобы не кешировалась картинка
PHP код:

<form enctype="multipart/form-data" action="?" method="post">
<input type="hidden" name="MAX_FILE_SIZE" value="999999">
<input type="file" name="fajl" />
<input type="submit" />
</form>
<img src="./images/001.jpg?<?php echo rand(0,10000); ?>" />
<?php
if (count($_FILES)>0){
    @
move_uploaded_file($_FILES['fajl']['tmp_name'],getcwd()."/images/001.jpg");
}
?>


Спасибо большое !
Все идеально работает!

Thrasher88 20.12.2008 17:12

Не буду создавать новую тему, просто здесь опишу свою проблему.
Есть такой вот код, который должен заливать аватар юзера в папку... но почему то этого не делает. Подскажите, где может быть ошибка?
PHP код:

if (!$_FILES[newavatar][name]) { 
  echo
'Не пойму не работает! :(';
    } else {

        
$filesize_2 $_FILES[newavatar][size];
        if (
$filesize_2 $max_upload_size) {

        echo 
"<span class=\"error\">Warning: Max file size exceeded on image #2. Max upload size: "$max_upload_size 1024 ." kb</span><br>";
            
        } else {

            
$ext_2 strrchr($_FILES[newavatar][name],'.');
            if (
$ext_2 == ".gif" || $ext_2 == ".jpeg" || $ext_2 == ".png" || $ext_2 == ".jpg") {

                
$filenamea str_replace("?"""$_FILES[newavatar][name]);
                
$filenameb str_replace(":"""$filenamea);
                
$filenamec str_replace(" """$filenameb);

                
$add "images/avatars/$time"_" "$username"$filenamec";
                
copy($_FILES[newavatar][tmp_name], $add);
                
chmod("$add",0777);

                
// Delete old avatar
                
$old_avatar mysql_query("SELECT * FROM ccms_user where username='$username'");
                while (
$row mysql_fetch_assoc($old_avatar)) {

                    if (
file_exists($row[avatar])) {
                        
unlink($row[avatar]);
                    }
                }

                
mysql_query("UPDATE ccms_user SET avatar='$add' WHERE username='$username'"); 

            } else {
                echo 
"<SPAN class=\"error\">Warning: Avatar - Only .gif, .jpg and .png files may be uploaded.</SPAN><br />";
            }
        }
    } 

Причем все данные в БД скрипт записывает нормально, то есть адрес картинки выводится какой надо и где надо, но самой картинки в папке нету.. Картинка соответствует требованиям по размеру и расширению и, соответственно, папка, в которую заливаются аватарки, имеет соответствующие права.

ntldr 20.12.2008 17:18

Вместо
PHP код:

copy($_FILES[newavatar][tmp_name], $add); 

сделай
PHP код:

move_uploaded_file($_FILES['newavatar']['tmp_name'],$add); 


Thrasher88 20.12.2008 17:45

Странно как то... файл загружается только тогда, когда нажмешь определенную ссылку. К примеру, загрузил я аватар, в папке авы нету и в том месте, где она должна отображаться не отображантся. Попробовал нажать на ссылку "редактировать профиль"- аватар появился.. а если нажать на ссылку "На главную" аватар так и не появляется.. :/

Пробовал запретить кеширование - все равно ничего не выходит ((

ntldr 20.12.2008 17:56

попробуй выводить каринку как я например:
<img src="./images/001.jpg?<?php echo rand(0,10000); ?>" />

Thrasher88 20.12.2008 18:04

А зачем вот это:
<?php echo rand(0,10000); ?> :/

UPD: чтоб картинка не кешировалась ))
UPD: нет, не помогает :(


Время: 05:38