2014-01-14 36 views
0

我正在处理一个文件上传表单,我想做3个特定的事情。也许这是晚了,我是一个业余编码器,所以我不知道在这里需要做什么。联系表单和上传文件表单之间的交叉

  • 我需要帮助使上传表单在上传文件时给我发电子邮件,没什么奇怪的。
  • 我需要帮助使上传的文件成为www.mywebsite.com/uploads/ $client的新目录。 (将填写在表格中)
  • 我需要帮助,确保表格在准备提交之前填写了所需的信息(电子邮件,姓名,所选文件)。

这里是我到目前为止的代码:

<?php 
$name = $_FILES['file']['name'];  
$extension = strtolower(substr($name, strpos($name, '.') + 1)); 
$type = $_FILES['file']['type']; 
$tmp_name = $_FILES['file']['tmp_name']; 
$size = $_FILES['file']['size']; 
$max_file_size = 34000000; 
$client = $_POST['client']; 
$email = $_POST['email']; 
$message = $_POST['message']; 
$formcontent="From: $name \n Message: $message"; 
$recipient = "[email protected]"; 
$subject = "File upload from:"; 
$mailheader = "From:" . $email; 


    if (isset($name)) { 
    if (!empty($name)) { 

     if (($size<=$max_file_size)) { 

     $location = '../uploads/'; 
      if (move_uploaded_file($tmp_name, $location.$name)); { 
       echo 'File uploaded :)'; 
      } 
     } else { 
      echo('File type not accepted. File size must be 30mb or less.'); 
     } 
    } else { 
     echo('Please choose a file before hitting submit'); 
    } 
    } 

    ?> 

我感谢大家你也可以提供任何帮助!

回答

1

这将是一个很长的答案问题。我会尽量给出一些简短但有用的提示。

  1. 可以使用mail function但坏事发送邮件可能发生像它可能被标记为您的邮件提供商的垃圾邮件。
  2. 制作新目录您可以使用mkdir function。你可以检查目录exists之前mkdir。
  3. 表单验证你需要学习javascript,也许jQuery,或者利用一些javascript表单验证框架
+0

谢谢你的信息,它帮助我了! – David

1
<?php 
$max_file_size = 34000000; 
$client = $_POST['client']; 
$email = $_POST['email']; 
$message = $_POST['message']; 
if($client!='' && $email!=''){ 
    $filename = stripslashes($_FILES['file']['name']); 
    if($filename!=''){ 
     $size=filesize($_FILES['file']['size']); 
     $extension = getExtension($filename); 
     $extension = strtolower($extension); 
     if($extension=="jpg" || $extension=="jpeg" || $extension=="png"){ 
      if($size <= $file_size_limit){ 
      move_uploaded_file($_FILES["file"]["name"],"upload/" .date("d_m_h_i_s"). $_FILES["file"]["name"]); 
      }else { 
       echo 'Max File Uplode size Error'; 
      } 
     } else{ 
     echo 'Invalid File Type'; 
     } 
    } else { 
    echo 'Please insert a file'; 
    } 
} else { 
echo 'Please enter the details'; 
} 


function getExtension($str){ 
    $i = strrpos($str,".") 
    if (!$i){ 
     return ""; 
    } 
    $l = strlen($str) - $i; 
    $ext = substr($str,$i+1,$l); 
    return $ext; 
} 
?> 

我还没有测试过它。您现在需要使用邮件功能中的详细信息。这些文件基于扩展&大小进行检查。我希望你正在使用方法POST & enctype =“multipart/form-data”进行表单上传。尝试使用JS验证电子邮件也

+0

这并没有让我走到我想去的地方,但我认为自从我发布这个问题以来我已经取得了进展! :) – David