将PDF文件存储在JS变量中


Store PDF file in JS variable

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>
  1. 你可以在js变量中存储pdf值,如果你想要这个值的话。您可以使用ajax调用从服务器加载pdf文档。但是,它将是二进制数据,并且您将无法在浏览器中将其显示给您的客户端。

  2. 您可以将此值发布到服务器,但它没有意义,因为您只能发布该文件的路径,并使用一些服务器端编程语言函数(在您的示例中为file_get_contents)获取该文件的内容。

  3. 将二进制数据作为电子邮件内容发送是没有意义的,所以您应该将其作为附件发送。不知道,是否有可能用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); 
        }
    });
};