Загрузка PHP с динамическим URL-адресом по атрибуту действия.

0

Я пытаюсь загрузить файл matlab с помощью php на свой сервер. Мне нужно передать этот файл как часть php url, чтобы я мог извлечь это из url и передать это в некоторый код в пользовательском сценарии оболочки.

Вот сценарий, который я использую для изменения URL-адреса, но затем файл не загружается.

Код HTML:

<script type="text/javascript">
 window.onload = function(){
    var form = document.getElementById("phpForm");
    form.onsubmit = function(){
      var matlabfile = document.getElementById("fileToUpload");
      var filename = matlabfile.value;
      var filename2=filename.replace(/^.*\\/, "");
      var filename3=filename2.substr(0, filename2.lastIndexOf('.'));
      window.location = "upload.php?matlabfile=" + filename3
      return false;
    };          
 };
</script>

                            <form action="" id="phpForm" method="post"
                            name="phpForm" enctype="multipart/form-data>
                                <table style=" text-align:center;">
                                    <tr>
                                        <td><b>File 1:</b> <input id=
                                        "fileToUpload" name="fileToUpload"
                                        type="file"></td>
                                    </tr>

                                    <tr>
                                        <td><input name="submit" type=
                                        "submit" value=
                                        "Upload Script"></td>
                                    </tr>
                                </table>
                            </form>

Код PHP:

<?php
    $targetfolder = "";
    $targetfolder = $targetfolder . basename( $_FILES['fileToUpload']['name']) ;
    if(move_uploaded_file($_FILES['fileToUpload']['tmp_name'], $targetfolder)) {
    echo "The file ". basename( $_FILES['fileToUpload']['name']). " is uploaded";
    } 
    else {
           echo "Problem uploading file";
    }
    $var1=$_GET['matlabfile'];
    echo "<pre>$var1</pre>";
    echo "matlabfile : ".$_GET['matlabfile']."<br>";
    $output = shell_exec("./n.sh $var1 2>&1");
    echo "<pre>$output</pre>";
    ?>   

Не могли бы вы рассказать мне, что я делаю неправильно.

Ждем ваших ответов.

Спасибо и с наилучшими пожеланиями, Шивам Диксит

Теги:
upload
action

1 ответ

0

Ваше "ложное возвращение"; препятствует отправке формы, а затем файл не загружается. Вы просто перемещаете пользователя на другой адрес.

Вместо

window.location = "upload.php?matlabfile=" + filename3;
return false;

попробуйте установить действие формы на нужный URL:

form.setAttribute('action', "upload.php?matlabfile=" + filename3);

Затем пользователь будет отправлен на нужную вам страницу, и файл будет загружен :)

  • 0
    Мой URL изменился с этим, но все равно файл не загружается.
  • 0
    Также, когда я использую пример php-кода для загрузки файла, он работает.
Показать ещё 4 комментария

Ещё вопросы

Сообщество Overcoder
Наверх
Меню