用户在js中导入.stl文件,该文件必须保存到数据库或服务器文件夹中。使用javascript我们从js导入文件,但由于我们无法将其保存在我们的服务器中,所以我使用ajax将文件从js发送到php。所以从php我们可以将它保存在我们的文件夹中。
下面是提取文件的代码,但该文件不会转到php。请帮我如何从js发送stl文件到PHP
Stage.prototype.handleFile = function(file) {
this.importingMeshName = file.name;
this.importEnabled = false;
var model = new Model(
this.scene,
this.camera,
this.container,
this.printout,
this.infoBox,
this.progressBarContainer
);
model.isLittleEndian = this.isLittleEndian;
model.vertexPrecision = this.vertexPrecision;
model.import(file, this.displayMesh.bind(this));
var form_data = new FormData();
form_data.append("file", document.getElementById('file').files[0]);
jQuery.ajax
({
url: 'saveinjs.php',
type: "POST",
data: {user:1, postdata:form_data},
contentType: false,
cache: false,
processData: false,
success:function(data)
{
$('#uploaded_image').html(data);
alert(data);
console.log(data);
},
error: function(xhr, textStatus, error){
console.log(xhr.statusText);
console.log(textStatus);
console.log(error);
}
});
};

这是用于获取文件并保存在我们的文件夹中的PHP代码
<?php
if(isset($_POST['user'])){
echo '123';
if($_POST["file"]["name"] != '')
{
$sourcePath = $_FILES['file']['tmp_name']; // Storing source path of the file in a variable
$targetPath = "upload/".$_FILES['file']['name']; // Target path where file is to be stored
move_uploaded_file($sourcePath,$targetPath) ;
}
}
?>
&#13;
答案 0 :(得分:1)
您可以使用javascript File
api来读取base64格式的内容。然后在您的后端代码中,您可以解密以获取实际内容。以下是处理文件的前端代码
function handleFile(file) {
var reader = new FileReader();
reader.readAsDataURL(file);
reader.onload = function () {
console.log(reader.result);
var data = {data: reader.result};
// You can post data object to server in json format
// Make Ajax request
};
reader.onerror = function (error) {
console.log('Error: ', error);
// Handle error
};
}
var file = document.getElementById('file').files[0];
handleFile(file);
&#13;
在php中使用base64_decode
函数可以解码base64字符串http://php.net/manual/en/function.base64-decode.php