- r - 以节省内存的方式增长 data.frame
- ruby-on-rails - ruby/ruby on rails 内存泄漏检测
- android - 无法解析导入android.support.v7.app
- UNIX 域套接字与共享内存(映射文件)
我正在使用标准的 PHP 函数上传一个文件以用作 PHPMailer 的附件。
<form name="upload" method="post" action="send_form_email3.php">
<div width="100%" class="con3">
<div class="lable">
<label for="first_name">First Name *</label>
</div>
<input type="text" name="first_name" id="first_name" class="span4">
<div class="lable">
<label for="email">Email Address *</label>
</div>
<input type="text" name="email" id="email" class="span4">
<div class="lable">
<label for="telephone">Contact Number *</label>
</div>
<input type="text" name="telephone" id="telephone" class="span4">
<div class="lable">
<label for="comments">Message *</label>
</div>
<textarea name="comments" rows="8" id="comments" class="span4"></textarea>
<div class="lable">
<label for="upload">Send Us Your CV *</label>
</div>
<input type="file" name="upload" id="upload" />
<input type="submit" value="Submit" class="btn btn-success">
</div>
</form>
此表单被提交到以下 php 处理程序,邮件将在其中生成和发送:
<?php
require_once("class.phpmailer.php");
$first_name = $_POST['first_name']; // required
$email_from = $_POST['email']; // required
$telephone = $_POST['telephone']; // required
$comments = $_POST['comments']; // required
echo "just got form values<br />";
echo $_FILES['upload']['name'].'<br />';
$email_message = "Form details below.<br />";
function clean_string($string) {
$bad = array("content-type","bcc:","to:","cc:","href");
return str_replace($bad,"",$string);
}
$email_message .= "Name: ".clean_string($first_name)."\n";
$email_message .= "Email: ".clean_string($email_from)."\n";
$email_message .= "Contact: ".clean_string($telephone)."\n";
$email_message .= "Message:\n".clean_string($comments)."\n";
echo "added text to email<br />";
$target_path = "uploads/";
$target_path = $target_path . basename( $_FILES['upload']['name']);
// upload the file
echo "target = ".$target_path."<br />";
if (isset($_FILES['upload']['size']))
{
if ($_FILES['upload']['size'] > 0)
{
echo 'file size: '.basename($_FILES['upload']['size']).'<br />';
if (move_uploaded_file($_FILES['upload']['name'], $target_path))
{
echo "The file ". basename( $_FILES['upload']['name'])." has been uploaded<br />";
// adding an already existing file as an attachment to the email for debugging purposes.
$email->AddAttachment('uploads/CreditReportViewer.pdf');
}
else
{
echo "There was an error uploading the file, please try again!<br /> ".basename($_FILES['upload']['error']);
}
}
else
{
echo "There was an error uploading the file, please try again!<br />";
}
}
else
{
echo "No file was found for the upload.<br />";
}
$email = new PHPMailer();
$email->To = "me@this.com";
$email->From = $email_from;
$email->FromName = $first_name;
$email->Subject = "New Message from Website";
$email->Body = $email_message;
echo "\n mail built...<br />";
$email->Send();
echo "mail sent!";
?>
问题是 $_FILES['upload']['name']
没有设置。这是正在写入浏览器的回显:
just got form values
added text to email
target = uploads/
No file was found for the upload.
mail built...
mail sent!
这让我觉得我错误地引用了文件上传字段或上传本身。
如果这不是执行此操作的最佳方法,任何人都可以在这里看到任何问题或提供一些指导吗?
最佳答案
你必须添加,
enctype= "multipart/form-data"
将您的表单更改为,
<form name="upload" method="post" action="send_form_email3.php" enctype= "multipart/form-data">
关于php - $_FILES 表单提交后为空,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/15130159/
很难说出这里要问什么。这个问题模棱两可、含糊不清、不完整、过于宽泛或夸夸其谈,无法以目前的形式得到合理的回答。如需帮助澄清此问题以便重新打开,visit the help center . 关闭 9
我有一个选择多个文件的文件输入,如下所示: 当用户选择一个文件(或多个文件)时,我使用 Javascript 将 id 和类更新为“oldFile”,然后添加另一个文件输入,但使用 file2[]
我正在使用 PUT 方法在前端使用 dropzone.js 上传文件。然而,当我想处理文件时,Symfony 的 Request 对象和 $_FILES 数组都是空的。 我已经检查了 this hug
我正在使用 PUT 方法在前端使用 dropzone.js 上传文件。然而,当我想处理文件时,Symfony 的 Request 对象和 $_FILES 数组都是空的。 我已经检查了 this hug
这个问题已经有答案了: jQuery not posting all inputs of a form after the .append() (5 个回答) 已关闭 3 年前。 我目前有一个带有单个
我在使用 Alamofire 将文件上传到服务器时遇到了一些问题。 文件上传良好,但上传应出现的变量为空:FILES:array(0) {\n}\nPOST:array(0) {\n}\n 并且使用该
我正在尝试将文件上传到某个目录。该目录记录在数据库中。但是,代码无法读取 $_FILES 我每次尝试上传文件时都会得到空值。但其他输入数据都记录到数据库中。发生的情况是我无法在数据库中记录文件名,它只
我正在尝试将多个图像上传到 php 服务器,但由于某种原因,它对所有上传的图像使用第一个图像名称,保存到相同的图像名称。我希望它保存到源文件夹中的文件名中。像Banner1.jpg一样,Banner2
我正在尝试将图像存储到 mysql 数据库中,但在 ajax 页面中 $_FILE['textfield_Name']['temp_name'] 无法识别它。帮我解决这个问题。 这是我的文件页面代码
所以,我最近研究了如何使用 Blob 将文件上传到数据库。这是我找到的教程http://www.php-mysql-tutorial.com/wikis/mysql-tutorials/uploadi
这个问题在这里已经有了答案: What does enctype='multipart/form-data' mean? (9 个回答) 关闭 7 年前。 我正在尝试创建一个脚本来上传 .mp3 文
好吧,有一点前言:我一直在致力于将拖放文件上传功能添加到名为 Moodle 的类(class)管理系统(特别是 2.0.1)中。该版本的Moodle使用YUI3框架,通过io-upload-ifram
这个问题已经有答案了: Sending multipart/formdata with jQuery.ajax (13 个回答) 已关闭 6 年前。 在描述我的问题之前,我确实在互联网和本网站上进行了
所以我正在为我妈妈开发一个网站,她想从她的相机上传照片,我首先用我在计算机上找到的一张普通图片测试了我的代码,该图片是在 photoshop CS6 和 $_FILES 数组中创建的没关系: arra
我整天都在为这个问题苦苦挣扎,厌倦了被困住。今天早上花了半个小时在我现在坚持使用的同一个应用程序上为个人资料图片做了一个不错的小自定义 uploader 。 这里的问题不是上传(我已经记下了),而是将
我正在尝试调试 $_FILES 数组的一个非常奇怪的问题。当我尝试上传文件时,仅设置了“名称”键,类型、tmp_name 等为空,并返回错误 #1。例如: Array ( [name] =>
当尝试访问$_FILES 数组时,PHP 返回错误 "Undefined index: picture". 在我的php.ini 文件中,File Uploads 是打开的,任何用户都可以在/tmp
这是我的 html 页面,其中包含表单: Dosya Adı:
我正在处理一个 PHP 上传脚本,在测试我的错误检查时,我试图上传一个 17MB 的 TIFF 文件。当我这样做时,$_FILES 数组是空的。该脚本可以很好地满足我需要它执行的操作,即上传 JPEG
我在用 PHP 上传多个文件时遇到一点问题, 我有这个 html 表单: 这是 upload.php : 当我发送文件时,它会显示: Array ( [myfile] =>
我是一名优秀的程序员,十分优秀!