为什么文件不能通过这个HTML / PHP上传? [英] Why files don't get uploaded with this HTML/PHP?

查看:82
本文介绍了为什么文件不能通过这个HTML / PHP上传?的处理方法,对大家解决问题具有一定的参考价值,需要的朋友们下面随着小编来一起学习吧!

问题描述

    <?php

require_once 'swift-mailer/lib/swift_required.php';

if (isset($_POST['submit'])) {

//File upload

// Where the file is going to be placed 
$target_path = "uploads/";

// Add the original filename to our target path.  
//Result is "uploads/filename.extension" 
$target_path = $target_path . basename($_FILES['uploadedfile']['name']);

if (is_uploaded_file($_FILES['uploadedfile']['tmp_name'])) {

if(move_uploaded_file($_FILES['uploadedfile']['tmp_name'], $target_path)) {
    echo "The file ".  basename($_FILES['uploadedfile']['name']). 
    " has been uploaded";
} else{
    echo "There was an error uploading the file, please try again!";
}   
}
//End of file upload

//Create the Transport
$transport = Swift_MailTransport::newInstance();

//Create the Mailer using your created Transport
$mailer = Swift_Mailer::newInstance($transport);

//Create the message
$message = Swift_Message::newInstance();

  //Give the message a subject
$message->setSubject('New data submitted');

$ip=$_SERVER['REMOTE_ADDR'];
$date=date("l, F j, Y, g:i a");

  //Give it a body
$message->setBody("Here is the information submitted to 
your site 
from $ip on $date.\n\n
--------------------------------\n\n
name: User \n\n
email address: user@hotmail.com \n\n
subject: Test \n\n
comment: Test comment");

  //Add alternative parts with addPart()
//$message->addPart('My amazing body in plain text', 'text/plain');

//Create the attachment
// * Note that you can technically leave the content-type parameter out
$attachment = Swift_Attachment::fromPath($target_path);  

//Attach it to the message
$message->attach($attachment);

//Using setTo() to set all recipients in one go
$message->setTo(array('me@gmail.com' => 'VB'));

//Set a From: address including a name
$message->setFrom(array('me@gmail.com' => 'Contact Us'));

//Send the message
$numSent = $mailer->send($message);

//printf("Sent %d messages\n", $numSent);

if(isset($_FILES['uploadedfile'])){
$pathfile = "/home/me/mysite/uploads/" . $_FILES['uploadedfile']['name'];
@unlink($pathfile);
}

$to = "$email";
$subject = "Thank You!";
$body = "Thank you for e-mailing us.  We will reply as soon as possible.";
// fix for thank you email address
$headers = "From: vlevsha@gmail.com\r\n" .
           "Reply-To: vlevsha@gmail.com\r\n" .
           "X-Mailer: PHP/" . phpversion();
        mail($to, $subject, $body, $headers);






    }



?> 

<!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Strict//EN" 
   "http://www.w3.org/TR/xhtml1/DTD/xhtml1-strict.dtd">
<html xmlns="http://www.w3.org/1999/xhtml" lang="en" xml:lang="en">
    <head>
        <title>Plain Form</title>
        <meta http-equiv="Content-Type" content="text/html; charset=iso-8859-1" />

    </head>
    <body>

<form id="form" action="plain_upload.php" method="post">
    <p>

        <input type="file" name="uploadedfile" />
    </p>

    <p>
        <input type="submit" name="submit" />
    </p>

</form>

    </body>
</html> 

谢谢大家!

Thank you all in advance!

推荐答案

您需要为表单标记添加 enctype

You need to add an enctype to your form tag

<form method="post" action="plain_upload.php" enctype="multipart/form-data">

这篇关于为什么文件不能通过这个HTML / PHP上传?的文章就介绍到这了,希望我们推荐的答案对大家有所帮助,也希望大家多多支持IT屋!

查看全文
登录 关闭
扫码关注1秒登录
发送“验证码”获取 | 15天全站免登陆