2014-10-05 5 views
0

Вот PHP файл с именем upload_file.php:HTML форма действия и OnClick

<?php 
    if ($_FILES["file"]["error"] > 0) { 
    echo "Return Code: " . $_FILES["file"]["error"] . "<br>"; 
    } else { 
    echo "Upload: " . $_FILES["file"]["name"] . "<br>"; 
    echo "Type: " . $_FILES["file"]["type"] . "<br>"; 
    echo "Size: " . ($_FILES["file"]["size"]/1024) . " kB<br>"; 
    echo "Temp file: " . $_FILES["file"]["tmp_name"] . "<br>"; 
    if (file_exists("upload/" . $_FILES["file"]["name"])) { 
     echo $_FILES["file"]["name"] . " already exists. "; 
    } else { 
     move_uploaded_file($_FILES["file"]["tmp_name"], 
     "upload/" . $_FILES["file"]["name"]); 
     echo "Stored in: " . "upload/" . $_FILES["file"]["name"]; 
    } 
    } 
?> 

Когда я звоню вышеуказанный файл с HTML-форм:

<form action="upload_file.php" method="post" enctype="multipart/form-data"> 
<label for="file">Filename:</label> 
<input type="file" name="file" id="file"><br> 
<input type="submit" name="submit" value="Submit"> 
</form> 

Все прекрасно работает, и мне удается загрузите выбранный файл в папку/upload local server.

Мой вопрос: что эквивалентно вышеуказанной форме, если я хочу использовать onclick? То есть в следующем коде

<a href="#x" class="overlay" id="browse_file"></a> 
     <div class="popup"> 
      <h2>Browse for your file</h2> 
      <input type="file" name="file" id="file"><br> 
      <input type="button" value="file" onclick= "location.href = 'upload_file.php'"> 
     </div> 

, который определяет всплывающее окно (которое проконтролировано anothel модальный диалог - вот почему я не хочу использовать форму), что должно быть завершено, чтобы передать имя файла, выбранного в $ _FILES при вызове upload_file.php с onclick?

Спасибо, друзья.

+0

Ваш вопрос непонятен, вы хотите иметь такую ​​же форму, но хотите, чтобы форма автоматически передавалась при выборе файла? – ClemSndr

+0

В последнем фрагменте кода я представил, что мы должны добавить, чтобы заставить его вести себя как предыдущая форма? Как мы можем передать файл, который пользователь выбирает в $ _FILES с onclick? – pebox11

+0

Это определенно не правильный способ сделать это. Вы не можете передать файл (который является почтовым запросом) с помощью location.href, вам нужно использовать запрос ajax post, и если вы действительно хотите перенаправить, вы можете запустить его в конце загрузки. – ClemSndr

ответ

0

Вы должны прочитать о AJAX и javascript, если вы хотите использовать функцию onclick с формами. В jquery существует очень простая реализация запроса ajax. Также вы можете легко выбрать выбранный файл из ввода с помощью jquery.

+0

Я ограничен внедрением для использования кода, который я отправил, чтобы перейти к $ _FILES. Могу ли я использовать этот код jquery? Скажем, может быть, после щелчка, выполняя jquery (где-то в моем html, который вызывает php)? – pebox11

+0

Почему вы не можете использовать форму? Вы не можете использовать ввод ввода, тег формы или что? Где проблема в вашей форме? Я не думаю, что вы можете отправлять файлы без формы, когда вы также не можете использовать javascript. – daredesm

+0

Если вы расскажете нам что-то о «форме» в вашем модальном, возможно, вам не нужно использовать ajax. – daredesm

Смежные вопросы