如何在php中使用ajax上传图像
如何将图像发送到“进程文件”当我通过ajaxform发布时,这是我的php页面如何在php中使用ajax上传图像,php,ajax,Php,Ajax,如何将图像发送到“进程文件”当我通过ajaxform发布时,这是我的php页面 $("#reg").click(function() { $.ajax({ url: "process_service_person_register.php", type: "post", data: "image": $("#image").val()},
$("#reg").click(function() {
$.ajax({
url: "process_service_person_register.php",
type: "post",
data: "image": $("#image").val()},
});
您必须使用对象
如果(窗口中的“FormData”)
{
var fd=新FormData();
fd.append('file',$('#image')[0].files[0]);
$.ajax({
url:“process\u service\u person\u register.php”,
数据:fd,
processData:false,
contentType:false,
键入:“POST”,
成功:功能(结果){
控制台日志(结果);
}
});
}
其他的
{
log('抱歉,FormData对象不可用');
}
如果没有FormData,您将不得不像使用这种方法一样走老路使用AJAX无法上传文件 但是,您可以通过使用隐藏的Iframe来模仿AJAX的行为(存在其他方式,但这是新旧浏览器最兼容的方式) 例如: 这是您的表格:
<script>
if ("FormData" in window)
{
var fd = new FormData();
fd.append('file', $('#image')[0].files[0]);
$.ajax({
url: "process_service_person_register.php",
data: fd,
processData: false,
contentType: false,
type: 'POST',
success: function(result) {
console.log(result);
}
});
}
else
{
console.log('sorry, FormData object is not available.');
}
</script>
在upload\u handler.php
或任何假定处理上传请求的文件中,您应该输出如下内容
<iframe name="upload_frame" id="upload_frame" width="1" height="1" frameborder="no" ></iframe>
window.parent.onUploadCallback(callback\u数据);
这将调用原始JavaScript页面上设置的onUploadCallback
函数
callback\u data
参数最好是JSON序列化的,这样您就可以在函数内部将其用作本机JavaScript对象
例如:
函数onUploadCallback(响应){
if(response.success)
警报(“文件上传:+响应.文件路径”);
}否则{
警报(“上传文件时出错:+response.Error\u消息”);
}
}
为了使所有的东西更通用,您应该使用类似于“JSONP”的样式,并将“callback”参数传递给upload\u handler.php
,其中包含要调用的函数的名称。然后将其作为隐藏的字段
在所有这些描述之后——我给你的真正建议是——使用一个已经制作好的jQuery库来完成任务使用它可以很容易地通过它上传图像,而不需要获得确切的代码。。
<script>
if ("FormData" in window)
{
var fd = new FormData();
fd.append('file', $('#image')[0].files[0]);
$.ajax({
url: "process_service_person_register.php",
data: fd,
processData: false,
contentType: false,
type: 'POST',
success: function(result) {
console.log(result);
}
});
}
else
{
console.log('sorry, FormData object is not available.');
}
</script>
<form target="upload_frame" action="upload_handler.php" method="POST" enctype="multipart/form-data">
<div class="control-group">
<label class="control-label" for="inputEmail">Image</label>
<div class="controls">
<input type="file" value="Browse" name="image" id="image" />
<span style="color: #61625F; font-weight: bolder;" class="sixth"></span>
</div>
</div>
</form>
<iframe name="upload_frame" id="upload_frame" width="1" height="1" frameborder="no" ></iframe>
<script type="text/javascript">
window.parent.onUploadCallback(callback_data);
</script>