Javascript 将生成的PDF保存在FTP服务器上
我通过Html2Pdf生成了一个PDF,但我不知道如何将该文件保存在FTP服务器上,而不是本地 我已经用JSPDF尝试过了,但是这个库的问题是我无法保存css元素。因此,我试图使它与html2pdf一起工作Javascript 将生成的PDF保存在FTP服务器上,javascript,php,jquery,ajax,html2pdf,Javascript,Php,Jquery,Ajax,Html2pdf,我通过Html2Pdf生成了一个PDF,但我不知道如何将该文件保存在FTP服务器上,而不是本地 我已经用JSPDF尝试过了,但是这个库的问题是我无法保存css元素。因此,我试图使它与html2pdf一起工作 $(“#打印机”)。在(“单击”上,函数(e){ var元素=document.getElementById('qrcode'); var worker=html2pdf().from(element).save(); var saver=html2pdf().from(element).o
$(“#打印机”)。在(“单击”上,函数(e){
var元素=document.getElementById('qrcode');
var worker=html2pdf().from(element).save();
var saver=html2pdf().from(element).output();
var data=new FormData();
data.append(“数据”,saver);
var xhr=new XMLHttpRequest();
open('post','upload.php',true);//发布到php脚本以保存到服务器
发送(数据);
});
我知道可以将这些数据传递到“upload.php”文件,但我不知道如何实现
我非常感谢您的帮助。这是为html2pdfrocket.com提供的 你可以试试下面的方法 将以下内容分配给$value,然后使用
<!DOCTYPE html>
<html>
<head>
<meta http-equiv='Content-Type' content='text/html; charset=UTF-8' />
<title>Title</title>
<style type='text/css'>
body{
width: 96%;
margin:1% 2%;
line-height: 2em;
letter-spacing: 0.26mm !important;
padding:0;
font-family:helvetica,sans serif;
word-wrap: break-word;
}
SOME CSS CODE
</style>
</head>
<body>
SOME HTML CODE
这是给HTML2PDFROTE.com的 你可以试试下面的方法 将以下内容分配给$value,然后使用
<!DOCTYPE html>
<html>
<head>
<meta http-equiv='Content-Type' content='text/html; charset=UTF-8' />
<title>Title</title>
<style type='text/css'>
body{
width: 96%;
margin:1% 2%;
line-height: 2em;
letter-spacing: 0.26mm !important;
padding:0;
font-family:helvetica,sans serif;
word-wrap: break-word;
}
SOME CSS CODE
</style>
</head>
<body>
SOME HTML CODE
这取决于远程FTP服务器,所以可能需要一点尝试&错误才能使连接正常工作 您的JS代码: 我还没有用Html2Pdf测试过它,但现在我假设这个保护程序包含完整生成的pdf bibary JS将把文件内容发送到服务器上的
upload.php
文件
你的upload.php
请参阅内联注释,希望您能够清楚地了解发生了什么,总体而言,您应该遵循以下步骤:
- 从Ajax请求中获取发布的数据
- 将内容写入临时文件(=pdf文件)
- 连接到ftp服务器
- 上传那个文件
ftp\u ssl\u connect
。
如果在连接/登录时出现错误,php应该会发出警告,因此可能需要检查错误日志,这取决于远程FTP服务器,因此可能需要尝试一点错误以使连接正常工作 您的JS代码: 我还没有用Html2Pdf测试过它,但现在我假设这个保护程序包含完整生成的pdf bibary JS将把文件内容发送到服务器上的
upload.php
文件
你的upload.php
请参阅内联注释,希望您能够清楚地了解发生了什么,总体而言,您应该遵循以下步骤:
- 从Ajax请求中获取发布的数据
- 将内容写入临时文件(=pdf文件)
- 连接到ftp服务器
- 上传那个文件
ftp\u ssl\u connect
。
如果连接/登录时出现错误,php应该会发出警告,因此可能需要检查错误日志1)您是否能够在当前为该网页提供服务的服务器上运行php代码(包含上述代码)?@Evil_skunk yes i am1)您是否能够在当前为该网页提供服务的服务器上运行php代码(包含上述代码)@Evil\u skunk是的,我明天会试试。谢谢你的回答,尽管我真的很感激。我明天会试试。谢谢你的回答,尽管我真的很感激
var data = new FormData();
data.append("data" , saver);
var xhr = new XMLHttpRequest();
xhr.open( 'post', 'upload.php', true ); //Post to php Script to save to server
xhr.send(data);
});
if(isset($_POST['data'])){
//$_POST['data'] will contain everything sent by ajax
$pdfContent = $_POST['data'];
//tmpFile to store the pdf - will be removed automatically
$tmpFile = tmpfile();
fwrite($tmpFile, $pdfContent);
//connect and login to a ftp server
$ftp_server = "ftp.xx.com";
$ftp_conn = ftp_connect($ftp_server) or die("Could not connect to $ftp_server");
//probably login with user/pw
$login = ftp_login($ftp_conn, $ftp_username, $ftp_userpass);
//upload tmp-file - choose filename on server
if (ftp_put($ftp_conn, "fileNameOnServer.pdf", $tmpFile, FTP_ASCII)){
echo "Successfully uploaded file";
}
else {
echo "Error uploading file";
}
//close connection
ftp_close($ftp_conn);
}
?>