通过ajax,javascript,php上传文件

时间:2015-06-13 16:19:52

标签: javascript php ajax

请我想通过ajax和javascript,php上传文件而不刷新页面: 我的想法是通过ajax xmlhttp.send(file)发送文件;并在脚本php中获取文件,但我不知道如何做这个uing函数记录

function record(elem){
	    
	 }
<td style='font-size:11px;'><span id='confirm1 $id'>Confirm : <input id='confirm1' onchange='record(this.id);' style='font-size:9px; height:27px; width:134px;' type='file' name='confirm1' /></td>

2 个答案:

答案 0 :(得分:1)

您可能正在寻找类似FormData API的内容:

https://developer.mozilla.org/en-US/docs/Web/API/XMLHttpRequest/Using_XMLHttpRequest#Submitting_forms_and_uploading_files

更简单的方法可能是使用iframe。

答案 1 :(得分:0)

问题是如何在脚本php中获取文件: $ _FILES [&#39; thefile&#39]:

&#13;
&#13;
function record(elem){
		var quelr=elem;
		var file1 = document.getElementById(quelr);
		var path = file1.value;
		var file = file1.files[0];
		var formData = new FormData();
		formData.append("thefile", file);

		
	var startIndex = (path.indexOf('\\') >= 0 ? path.lastIndexOf('\\') : path.lastIndexOf('/'));
	var filename = path.substring(startIndex);
	if (filename.indexOf('\\') === 0 || filename.indexOf('/') === 0) {
		filename = filename.substring(1);
	}
	alert(filename);
	         xmlhttp=new XMLHttpRequest();
			 alert("mehdi");
		     xmlhttp.open("POST","record.php",true);
			 alert("mehdi");
			 xmlhttp.setRequestHeader("enctype","multipart/form-data");
			 xmlhttp.send(formData);
		     document.getElementById(quelr+" "+id).innerHTML=xmlhttp.responseText;
	 }
&#13;
&#13;
&#13;