Php загрузить файл - PullRequest
       5

Php загрузить файл

1 голос
/ 14 декабря 2009

Код выглядит так:

HTML

<form action="contact.php" method="post" enctype="multipart/form-data" onsubmit="return Validare();">

    <input type="text" name="nume" value="Nume" class="contact" id="Nume" onclick="if(this.value=='Nume')this.value='';" onblur="if(this.value.replace(/^\s+|\s+$/g,'')=='')this.value='Nume'" /><font color="red">*</font><br />
            <input type="text" name="email" value="Email" class="contact" id="Email" onclick="if(this.value=='Email')this.value='';" onblur="if(this.value.replace(/^\s+|\s+$/g,'')=='')this.value='Email'" /><font color="red">*</font><br />
            <input type="text" name="telefon" value="Telefon" class="contact" id="Telefon" onclick="if(this.value=='Telefon')this.value='';" onblur="if(this.value.replace(/^\s+|\s+$/g,'')=='')this.value='Telefon'" /><br />
            <textarea name="mesaj" rows="10" class="contact" id="Mesaj" onclick="if(this.value=='Mesaj')this.value='';" onblur="if(this.value.replace(/^\s+|\s+$/g,'')=='')this.value='Mesaj'">Mesaj</textarea>

<input type="file" name="file[]" />
<input type="file" name="file[]" />
<input type="file" name="file[]" />
<input type="submit" value="Trimite" />
</form>

PHP

for($i=0; $i<3; $i++){
if($_FILES["file"]["size"][$i] > 0){
    $rand = rand(10000, 99999);
    $name = $rand.rand(10000, 99999).$_FILES["file"]["name"][$i];
            $tmp_name = $_FILES["file"]["tmp_name"][$i];
    $target_path_big = "http://biroutraduceri.net/fisiere/".$name;
    move_uploaded_file($tmp_name, "fisiere/".$name);
}
}

* Javascript 1014 *

<script>
function Validare(){
    if(document.getElementById("Nume").value.replace(/^\s+|\s+$/g,'') == "" || document.getElementById("Nume").value.replace(/^\s+|\s+$/g,'') == "Nume"){
        alert("Numele nu este valid!");
        return false;
    }
    if(document.getElementById("Email").value.replace(/^\s+|\s+$/g,'') == "" || document.getElementById("Email").value.replace(/^\s+|\s+$/g,'') == "Email"){
        alert("Email-ul nu este valid!");
        return false;
    }
    if(document.getElementById("Mesaj").value.replace(/^\s+|\s+$/g,'') == "" || document.getElementById("Mesaj").value.replace(/^\s+|\s+$/g,'') == "Mesaj"){
        alert("Mesajul nu este valid!");
        return false;
    }
    return true;
}
</script>

Когда я нажимаю "Отправить", ничего не происходит. Файл не загружен.

Где я не прав ???

Ответы [ 7 ]

2 голосов
/ 14 декабря 2009

В вашем PHP-коде есть ошибка, $ tmp_name никогда не устанавливается.

Исправленный код

for($i=0; $i<3; $i++){
    if($_FILES["file"]["size"][$i] > 0){
        $rand = rand(10000, 99999);
        $name = $rand.rand(10000, 99999).$_FILES["file"]["name"][$i];
        $target_path_big = "http://biroutraduceri.net/fisiere/".$name;
        move_uploaded_file($_FILES["file"]["tmp_name"][$i], "fisiere/".$name);
    }
}
1 голос
/ 14 декабря 2009

$ tmp_name никогда ни к чему не инициализируется.

$ tmp_name должно быть установлено равным $ _FILES ['file'] ['tmp_name'] [$ i];

0 голосов
/ 14 декабря 2009

Может быть проблема с правами доступа, есть ли у вашего сценария разрешение на запись в "fisiere /".$ name" и действительно ли имя "fisiere /".$" действительно там, где вы думаете? Возможно, вы захотите использовать абсолютный путь.

Редактировать: Вы не можете записать изображение в URL-адрес http, вам нужно записать его в локальный путь к файлу и убедиться, что у php есть права на запись в этот путь / каталог

0 голосов
/ 14 декабря 2009

Вы забыли установить переменную $ tmp_name. Как в $tmp_name = $_FILES["file"]["tmp_name"][$i]; В противном случае, похоже, что в соответствии с моими собственными тестами.

В противном случае добавьте print_r($_FILES); перед циклом "for", еще пару отпечатков и проверку is_readable($tmp_name) внутри цикла, чтобы более точно попытаться определить источник проблемы.

0 голосов
/ 14 декабря 2009

Вам действительно не нужен onsubmit = "return Validare ();" и это даже написано неправильно. и move_uploaded_file ($ _ FILES ['file'] ['tmp_name'], $ target_path)) правильный код для

0 голосов
/ 14 декабря 2009

Вы хотите $_FILES['file'][$i]['size']

0 голосов
/ 14 декабря 2009

я думаю onsubmit="return Validare();" возвращает ложь

почему вы все равно используете эту функцию rand, попробуйте time () я думаю лучше

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...