【发布时间】:2020-08-09 23:04:18
【问题描述】:
我有一个网络应用程序,我可以将 pdf 文件上传到数据库中。我的签名程序只允许使用 pdf-verion 1.4 的 pdf 文件,所以我想通过上传文件直接检查版本。所以当我上传文件的时候,我启动这个来获取文件在JS中的内容:
document.getElementById("selectedFile_upload").addEventListener('change', check_pdfVersion, false);
function check_pdfVersion(evt) {
alert("check_pdfVersion...");
var file = evt.target.files[0];
var blob = new Blob([file], {type: 'application/pdf'});
var data = new FormData();
data.append('pdf_chkv', blob);
$.ajax({
url: 'upload.php',
type: 'POST',
data: data,
contentType : false,
processData : false,
success: function(data) {
alert("PDF Version wird geprüft");
},
error: function() {
alert("FKT.check_pdfVersion erreicht aber etwas ist schief gelaufen")
}
})
}
function pdfVersion_result(evt) {
alert("pdf version: " + evt.target.files[0].str);
}
我在这里将我的 pdf 数据发送到 PHP 以检查版本。我认为它可以检查 JS 中的版本,我尝试这种方式但它不起作用:
var file = evt.target.files[0];
var reader = new FileReader();
reader.onload = (function(theFile) {
return function(e) {
jQuery('#selectedFile_upload').val(e.target.result);
};
})(file);
reader.readAsText("file: " + file);
alert(reader);
我的 PHP 文件:
if(isset($_FILES['pdf_chkv'])) {
if(!$_FILES['pdf_chkv']['error']) {
handle_pdfCheck();
}
}
function handle_pdfCheck() {
$pdfFile_raw = file_get_contents($_FILES['pdf_chkv']['tmp_name']);
$result = pdfVersion($pdfFile_raw);
?>
<script>
var result = '<?php echo $result; ?>';
alert("PDF Version: ");
alert(result);
</script>
<?php
if(strcmp($result,'1.4') != 0) {
die("Ihre PDF-Version ist " . $result . ". Dieses System kann derzeit nur PDF-Version 1.4 verarbeiten.");
}
}
我在 php 变量 $result 中获得了文件的版本,但我没有在 js 代码中获得带有此结果的警报。我认为这是因为文档已经加载完毕。在 html 中选择文件后,如何直接向用户显示其上传文件的 pdf 版本?
为我的英语打招呼和抱歉, 喜欢肥猫
【问题讨论】:
标签: javascript php database pdf blob