html代码来了
<input type="text" class="txtbox" placeholder="Name" id="name" name="name" />
<input type="text" class="txtbox" placeholder="E-mail"id="email" name="email" />
<input type="text" class="txtbox" placeholder="Phone" id="phone" name="phone" />
<input type="file" class="txtbox" name="file" id="resume">
<input name="submit" id="submitbutton1" value="Apply Now" type="button" onClick="submitbutton1()" class="txtbox">
和我的js函数如下
<script>
function submitbutton1()
{
console.log("here");
var name=$("#name").val();
console.log(name);
var email=$("#email").val();
console.log(email);
var phone=$("#phone").val();
console.log(phone);
var tal={"name":name,"email":email,"phone": phone};
$.ajax({
type: "POST",
url: "email.php",
data: tal,
success: function(ch)
{
console.log(ch);
}
});
}
</script>
我想将该pdf文件的值存储到一个js变量中,以便我可以将所有这些变量发布到email.php中,是否有可能在js变量中存储pdf文件?如果可能,怎么做?
我已经编辑了你的脚本。
<script>
function submitbutton1()
{
console.log("here");
var name=$("#name").val();
console.log(name);
var email=$("#email").val();
console.log(email);
var phone=$("#phone").val();
console.log(phone);
var resume=$("#resume").val();
var tal={"name":name,"email":email,"phone": phone,"resume":resume};
$.ajax({
type: "POST",
url: "email.php",
data: tal,
success: function(ch)
{
console.log(ch);
}
});
}
</script>
-
你可以在js变量中存储pdf值,如果你想要这个值的话。您可以使用ajax调用从服务器加载pdf文档。但是,它将是二进制数据,并且您将无法在浏览器中将其显示给您的客户端。
-
您可以将此值发布到服务器,但它没有意义,因为您只能发布该文件的路径,并使用一些服务器端编程语言函数(在您的示例中为file_get_contents)获取该文件的内容。
-
将二进制数据作为电子邮件内容发送是没有意义的,所以您应该将其作为附件发送。不知道,是否有可能用phpmail()函数发送附件,以前我只使用phpmailer。Php mailer不需要二进制数据,它只需要文件的路径。
我认为你必须用ajax上传PDF文件,并使用一个ajax请求将数据发送到ajax。您可以使用FormData()对象的post文件和数据值
function submitbutton1() {
var file_data = $('#resume').prop('files')[0];
var form_data = new FormData();
form_data.append('file', file_data);
form_data.append('name', $("#name").val());
form_data.append('email', $("#email").val());
form_data.append('phone', $("#phone").val());
$.ajax({
url: 'email.php',
cache: false,
data: form_data,
type: 'post',
success: function(result){
console.log(result);
}
});
};