如何使用ajax将js文件从js发送到没有表单数据的php

时间:2018-05-29 09:27:00

标签: javascript php ajax

用户在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;
&#13;
&#13;

1 个答案:

答案 0 :(得分:1)

您可以使用javascript File api来读取base64格式的内容。然后在您的后端代码中,您可以解密以获取实际内容。以下是处理文件的前端代码

&#13;
&#13;
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;
&#13;
&#13;

在php中使用base64_decode函数可以解码base64字符串http://php.net/manual/en/function.base64-decode.php