PHP表单-用于注册的文件上传字段


PHP Form - File Upload Field for Signup

我创建了一个PHP注册表单,供访问者填写和提交,询问他们的基本信息。

我正在努力完成以下两项任务;

  1. 添加图像/文件上载字段
  2. 将他们重定向到确认页面

我一直无法使它发挥作用。以下是我所拥有的。

我的代码

HTML表单

<form name="form1" method="post" action="signup.php"> 
Username: <input type="text" name="user">    
<br>Email: <input type="text" name="mail">
<br>Experience: <select name="exp"> <option value="beginner">Beginner</option> 
<option value="intermediate">Intermediate</option> <option value="advanced">Advanced</option> 
</select><br> <input type="submit" name="Submit" value="Sign Up"> 
</form>

注册.php

<?php
$username = $_POST['user'];
$email = $_POST['mail'];
$experience = $_POST['exp'];
//the data
$data = "$username | $email | $experience'n";

//open the file and choose the mode
$fh = fopen("users.txt", "a");
fwrite($fh, $data);

//close the file
fclose($fh);

print "User Submitted";
?>

在HTML中似乎缺少一个输入字段。这里有一个上传文件的表单示例。

<form action="upload.php" method="post" enctype="multipart/form-data">
    Select image to upload:
    <input type="file" name="fileToUpload" id="fileToUpload">
    <input type="submit" value="Upload Image" name="submit">
</form>

一旦你完成了,你还没有完全完成,因为你的文件存储在一个临时文件夹中,你需要将文件移动到你的上传文件夹,如下所示:

$target_file = "uploads/" . basename ($_FILES["fileToUpload"]["name"]);
move_uploaded_file($_FILES["fileToUpload"]["tmp_name"], $target_file)

我希望这能有所帮助!

Ta添加一个上传-您需要将enctype="multipart/form data"添加到表单标记中,然后添加上传字段。对于电子邮件字段,将类型更改为HTML5 type="Email",这将进行一点验证,以检查其格式是否正确。如果一切顺利,在php文件的底部添加一个位置头。您可以将所有内容放在一个文件中,并在顶部添加if语句。您还应该净化您的输入

这是一个上传文件脚本,它将遍历文件的所有数据并插入

if(isset($_POST['submit'])) {
            if (is_uploaded_file($_FILES['filename']['tmp_name'])) {
            echo "<h1>" . "File ". $_FILES['filename']['name']. "uploaded successfully." . "</h1>";
            }
            $csv_file=$_FILES['filename']['tmp_name'];
            $type=$_FILES['filename']['type'];

            $handle = fopen($csv_file, "r");
            $i=0;
            while (($data = fgetcsv($handle)) !== FALSE) {
            if($i>0) {
            $import="insert into `table_name`(col1,col2,col3,col4,col5,col6,col7)values('".addslashes($data[0])."','".addslashes($data[1])."','".addslashes($data[2])."','".addslashes($data[3])."','".addslashes($data[4])."','$data[5]','$data[6]')";
       mysql_query($import) or die(mysql_error());
       }
       $i=1;
       }
       echo "Success";
       echo "<br>";
       echo $_FILES['filename']['type'];
        }   
 ?>
<form action="<?php echo $_SERVER['PHP_SELF']; ?>" method="post" enctype="multipart/form-data" name="" id="">
Choose File:<br>
<input name="filename" type="file" />
<input type="submit" name="submit" value="submit" />
</form>