2014-02-21 48 views
0

我正在处理包含个人数据的表单,并且想要将照片上传到远程服务器。 在我第一次尝试了文件中使用下面的代码来:表单发送数据但没有将文件上传到服务器

up_file.php

<?php 

    error_reporting(E_ALL); 

    $file = $_FILES["img"]["name"]; 
    $file_remote = $_FILES["img"]["tmp_name"]; 


if ($file){ 
    if(strstr($file,".jpg")||strstr($file,".jpeg")||strstr($file,".png")){ 
     $destino = "/absolute/route/directory/".$file; 
     if(move_uploaded_file($file_remote, $destino)){ 
      echo "Moved in server"; 
     } 
     else 
      echo "Not moved"; 

    } 

} 
?> 

这工作,如果我使用它独自一人,但是当我尝试将其插入到哪里取码所有的表格参数,然后它不起作用,我不知道为什么。

我正在考虑使用2种不同的形式,但上传一张照片是必需的形式,然后我正在寻找一些JS代码,允许我发送2个表单提交相同的按钮,但也许不是一个好主意。

谢谢!

+0

只有一个表单可以一次提交,除非它们被提交到框架/新窗口。 – epascarello

+0

你可以显示你的html,以及你插入这个的其他代码吗? – CodeBird

回答

0

我不明白你的问题,但如果你想在请求页面获得更多的参数,可以你可以使用:

形式:

<form action="" method="post" enctype="multipart/form-data" name="formz" > 
    Name:<br /> 
    <input type="text" name="name" /><br /><br /> 
    Email:<br /> 
    <input type="text" name="email" /><br /><br /> 
    Picture:<br /> 
    <input type="file" name="img" /><br /><br /> 
    <input type="submit" name="sub" value="GO!" /> 
</form> 

PHP:

<?php 

    error_reporting(E_ALL); 

    //Get the vars 
    $name = $_POST['name']; 
    $email = $_POST['email']; 
    //--- 


    $file = $_FILES["img"]["name"]; 
    $file_remote = $_FILES["img"]["tmp_name"]; 


if ($file){ 
    if(strstr($file,".jpg")||strstr($file,".jpeg")||strstr($file,".png")){ 
     $destino = "/absolute/route/directory/".$file; 
     if(move_uploaded_file($file_remote, $destino)){ 
      echo "Moved in server"; 
     } 
     else 
      echo "Not moved"; 

    } 


    //Show up the values 
    echo('Name: ' . $name); 
    echo('Email: ' . $email); 
    //--- 
} 

你只需要把值放在你的数据库上。

+0

谢谢!我一直这样做,但阅读你的答案我注意到,我忘记将“enctype”添加为“multiform/form-data”。现在它工作正常。 –

相关问题