联系表单和上传文件表单之间的交叉

时间:2014-01-14 04:54:59

标签: php forms file-upload

我正在处理一个文件上传表单,我想做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 = "test@test.com";
$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');
    }
    }

    ?>

我感谢你们所提供的任何帮助!

3 个答案:

答案 0 :(得分:1)

PHP电子邮件 - http://php.net/manual/en/function.mail.php

PHP创建目录 - http://php.net/mkdir

jquery表单验证 - http://jqueryvalidation.org/documentation/

这些Google搜索让我失望:P

答案 1 :(得分:1)

这些问题将是一个很长的答案。我会尝试提供一些简短但有用的提示。

  1. 发送邮件可以使用mail function,但可能会发生不良后果,因为邮件提供商可能会将其标记为垃圾邮件。
  2. 制作新目录,您可以使用mkdir function。您可以在mkdir。
  3. 之前检查目录exists
  4. 表单验证您需要学习javascript,也许是jQuery,或者使用一些 javascript表单验证框架

答案 2 :(得分: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;
}
?>

我还没有测试过。您现在需要使用邮件功能中的详细信息。根据扩展和&amp ;;检查文件。尺寸。我希望你使用方法作为POST&amp;用于表单上传的enctype =“multipart / form-data”。尝试使用JS也使用电子邮件验证