2014-11-05 63 views
-1

我已经创建了一个PHP注册表单,供访问者填写并提交请求其基本信息。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> 

Signup.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"; 

?> 
+0

我没有看到你的代码输入文件中的字段。也许你需要看看这个http://php.net/manual/en/features.file-upload.post-method.php – Yalamber 2014-11-05 12:36:43

回答

2

看起来你在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) 

我希望这有助于!

+0

如果这回答你的问题,请记住这个答案,否则这个问题将留下来标记为“打开”。 您可以通过点击答案左侧的灰色小“检查”来标记答案,当答案变为绿色时,您将其标记为答案。 – Vanitas 2014-11-05 12:55:54

0

Ta填入你需要添加ENCTYPE = “的multipart/form-data的” 上传添加到您的表单标签,然后添加上传字段。对于电子邮件字段将类型更改为HTML5类型=“电子邮件”,这将做一些验证检查,它是在正确的格式。如果一切顺利,在php文件的底部添加一个位置标题。你可以把它放在一个文件中,并在顶部添加if语句。你还应该清理你的输入

0

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

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>