2014-01-14 33 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