如何上传包含用户名,密码,多个文件上传的HTML表单,然后使用PHP进行处理?

StackOverflow https://stackoverflow.com/questions/137730

  •  02-07-2019
  •  | 
  •  

如何从单个html表单发布用户名,密码和多个二进制文件并使用php处理它?我不允许使用ajax。

有帮助吗?

解决方案

首先在PHP.net上查看这些页面

  1. 文件上传信息
  2. move_uploaded_file
  3. 但是为了让你从这里开始,这里有几个存根文件。

    <强> uploadForm.html

    <html>
    <body>
        <form action="processStuff.php" enctype="multipart/form-data" method="POST">
            username: <input type="text" name="username" />
            password: <input type="password" name="password" />
    
            <p>
                <input type="file" name="uploadFile[]" /><br />
                <input type="file" name="uploadFile[]" /><br />
                <input type="file" name="uploadFile[]" /><br />
                <!-- Add as many of these as you want -->
            </p>
    
            <p>
                <input type="submit" />
            </p>
        </form>
    </body>
    </html>
    

    <强> processStuff.php

    <pre>
    <?php
    
        echo '<h2>Username & password</h2>'
        echo "Username: {$_POST['username']}\nPassword: {$_POST['password']}";
        echo '<hr />';
    
        echo '<h2>Uploaded files</h2>'  
        foreach($_FILES['uploadFile']['tmp_name'] as $i => $tempUploadPath) {
            if (empty($tempUploadPath)) {
                // this <input type="file" /> was "blank"... no file selected
            } else {
                // a file was uploaded
                echo '<strong>A file named "', $_FILES['uploadFile']['name'][$i], "\" was uploaded</strong>\n";
                echo "\ttemporarily stored at: ", $tempUploadPath, "\n";            
                echo "\tmime type: ", $_FILES['uploadFile']['type'][$i], "\n";
                echo "\tsize: ", $_FILES['uploadFile']['size'][$i], " bytes\n";         
                echo "\terror code", 
                ((empty($_FILES['uploadFile']['size'][$i]) 
                        ? '<em>no errror</em>' 
                        : $_FILES['uploadFile']['size'][$i])), 
                "\n\n";
    
        // do something useful with the uploaded file 
            // access it via $tempUploadPath and use move_uploaded_file() to move 
            //     it out of the temp path before you manipulate it in any way!!!!!
            // see http://us3.php.net/features.file-upload
            // and http://us3.php.net/manual/en/function.move-uploaded-file.php
            }       
        }
    
    ?>
    </pre>
    

    HTML文件显示如何设置enctype <!>放大器的<form>;第二个表单显示如何访问提交的用户名<!> amp;密码<!> amp;最后如何循环每个上传的文件。

    如上所述,您必须尽快移动文件。它们被上传到临时位置,系统将删除它们,除非您处理它们。所以先把它们移到某处,然后随心所欲地做任何事情。

    这有助于

    阿林

其他提示

您应该使用$_FILES超全局和move_uploaded_file()函数来查看哪些文件已成功上传,并将它们移动到最终位置以防万一。

$_POST超级全球将包含提交的用户名和密码。

许可以下: CC-BY-SA归因
不隶属于 StackOverflow
scroll top