文件没有在阿贾克斯PHP的MySQL上传 [英] file is not uploading in ajax php mysql
问题描述
我想上传用ajax这是给我的错误和数据上传成功,我有尝试没有AJAX的文件上传,但是当我尝试上载通过AJAX文件时,它给剩下的一个文件,我的错误我完全搞不清为什么AJAX是给我problem.here是我的code。
< HTML>
< HEAD>
<脚本SRC =jQuery的-1.8.2.min.js>< / SCRIPT>
<脚本类型=文/ JavaScript的>
$(文件)。就绪(函数(){
$(#键)。点击(函数(){
VAR form_data = $('#reg_form')序列化()。
$阿贾克斯({
键入:POST,
网址:process.php
数据:form_data,
成功:函数(数据)
{
$(#信息)的HTML(数据);
}
});
});
});
< / SCRIPT>
< /头>
<身体GT;
<形式ID =reg_formENCTYPE =多部分/表单数据的方法=邮报行动=>
名称:其中,输入型=文本名称=名称ID =名/>
< / BR>
消息:其中;输入类型=文本名称=消息的id =消息/>
< / BR>
图片:LT;输入类型=文件名称=文件ID =文件/>
<输入类型=按钮值=发送意见ID =按钮>
< DIV ID =信息/>
< /形式GT;
< /身体GT;
< / HTML>
该process.php文件编码是在这里。
< PHP
的mysql_connect(localhost的根,);
mysql_select_db(ajaxdatabase);
$名称= $ _ POST [名称];
$消息= $ _ POST [信息];
//存储在文件名可变的文件
$文件名= $ _FILES ['文件'] ['名称'];
//目的地目录
$到=形象/".$文件名;
move_uploaded_file($ _ FILES ['文件'] ['tmp_name的值'],$到);
$查询=请求mysql_query(INSERT INTO通用(姓名,邮件,目的地)VALUES('$名字','$消息,$以'));
如果($查询){
回声您的评论已发送;
}
其他{
回声错误的发送您的评论;
}
?>
首先连载()函数不进行文件工作,你应该做的形式的对象,你可以通过它发布的数据,并会很好地工作我有同样的问题,我刚才已经解决您的问题,并正在100%,因为我已经测试了这一点。请检查。 形式。
<表格名称=各种形式的ID =各种形式的行动=process.php方法=POSTENCTYPE =的multipart / form-data的>
名称:其中,输入型=文本名称=名称ID =名/>
< / BR>
消息:其中;输入类型=文本名称=消息的id =消息/>
< / BR>
图片:LT;输入类型=文件名称=文件ID =文件/>
< /形式GT;
<输入类型=按钮ID =多交值=运行code>< /输入>
< DIV ID =多味精>< / DIV>
脚本。
<脚本类型=文/ JavaScript的>
$(文件)。就绪(函数(){
$(#各种形式)。递交(函数(五)
{
VAR formObj = $(本);
VAR formURL = formObj.attr(行动);
如果(window.FormData!== undefined)的
{
VAR FORMDATA =新FORMDATA(本);
$阿贾克斯({
网址:formURL,
键入:POST,
数据:FORMDATA,
MIMETYPE:多部分/表单数据,
的contentType:假的,
缓存:假的,
过程数据:假的,
成功:功能(数据,textStatus,jqXHR)
{
$(#多味精)HTML('< pre>< code基+数据+'< / code>< / pre>');
},
错误:函数(jqXHR,textStatus,errorThrown)
{
$(#多味精)HTML('< pre>< code类=prettyprint> AJAX请求失败< BR /> textStatus ='+ textStatus + ,errorThrown ='+ errorThrown +'< / code>< / pre>');
}
});
即preventDefault();
e.unbind();
}
});
$(#多岗)。点击(函数()
{
//从这里发送形式
$(#多种形式)提交()。
});
});
< / SCRIPT>
和你的PHP文件是我测试过,并正在同。
< PHP
的mysql_connect(localhost的根,);
mysql_select_db(ajaxdatabase);
$名称= $ _ POST [名称];
$消息= $ _ POST [信息];
//存储在文件名可变的文件
$文件名= $ _FILES ['文件'] ['名称'];
//目的地目录
$到=形象/".$文件名;
move_uploaded_file($ _ FILES ['文件'] ['tmp_name的值'],$到);
$查询=请求mysql_query(INSERT INTO通用(姓名,邮件,目的地)VALUES('$名字','$消息,$以'));
如果($查询){
回声您的评论已发送;
}
其他{
回声错误的发送您的评论;
}
?>
I am trying to upload a file using ajax which is giving me an error and the rest of data upload successfully i have try without ajax the file is uploading but when i try to upload file via ajax it give me error i am totally confuse why ajax is giving me the problem.here is my code.
<html>
<head>
<script src="jquery-1.8.2.min.js"></script>
<script type="text/javascript">
$(document).ready(function(){
$("#button").click(function(){
var form_data = $('#reg_form').serialize();
$.ajax({
type:"POST",
url:"process.php",
data:form_data,
success: function(data)
{
$("#info").html(data);
}
});
});
});
</script>
</head>
<body>
<form id="reg_form" enctype="multipart/form-data" method="post" action="">
name : <input type="text" name="name" id="name"/>
</br>
message : <input type="text" name="message" id="message" />
</br>
Image : <input type="file" name="file" id="file" />
<input type="button" value="Send Comment" id="button">
<div id="info" />
</form>
</body>
</html>
The process.php file coding is here.
<?php
mysql_connect("localhost","root","");
mysql_select_db("ajaxdatabase");
$name=$_POST["name"];
$message=$_POST["message"];
//storing file in filename variable
$fileName = $_FILES['file']['name'];
//destination dir
$to="image/".$fileName;
move_uploaded_file($_FILES['file']['tmp_name'],$to);
$query=mysql_query("INSERT INTO common(name,message,destination) values('$name','$message','$to') ");
if($query){
echo "Your comment has been sent";
}
else{
echo "Error in sending your comment";
}
?>
First of all serialize() function don't work for file you should have to make an object of form through which you can post the data and will work perfectly I had the same problem and I have just resolved your issue and is working 100% because I have tested this. Please check out. The form.
<form name="multiform" id="multiform" action="process.php" method="POST" enctype="multipart/form-data">
name : <input type="text" name="name" id="name"/>
</br>
message : <input type="text" name="message" id="message" />
</br>
Image : <input type="file" name="file" id="file" />
</form>
<input type="button" id="multi-post" value="Run Code"></input>
<div id="multi-msg"></div>
The script.
<script type="text/javascript">
$(document).ready(function(){
$("#multiform").submit(function(e)
{
var formObj = $(this);
var formURL = formObj.attr("action");
if(window.FormData !== undefined)
{
var formData = new FormData(this);
$.ajax({
url: formURL,
type: 'POST',
data: formData,
mimeType:"multipart/form-data",
contentType: false,
cache: false,
processData:false,
success: function(data, textStatus, jqXHR)
{
$("#multi-msg").html('<pre><code>'+data+'</code></pre>');
},
error: function(jqXHR, textStatus, errorThrown)
{
$("#multi-msg").html('<pre><code class="prettyprint">AJAX Request Failed<br/> textStatus='+textStatus+', errorThrown='+errorThrown+'</code></pre>');
}
});
e.preventDefault();
e.unbind();
}
});
$("#multi-post").click(function()
{
//sending form from here
$("#multiform").submit();
});
});
</script>
And your php file is the same I have tested and is working.
<?php
mysql_connect("localhost","root","");
mysql_select_db("ajaxdatabase");
$name=$_POST["name"];
$message=$_POST["message"];
//storing file in filename variable
$fileName = $_FILES['file']['name'];
//destination dir
$to="image/".$fileName;
move_uploaded_file($_FILES['file']['tmp_name'],$to);
$query=mysql_query("INSERT INTO common(name,message,destination) values('$name','$message','$to') ");
if($query){
echo "Your comment has been sent";
}
else{
echo "Error in sending your comment";
}
?>
这篇关于文件没有在阿贾克斯PHP的MySQL上传的文章就介绍到这了,希望我们推荐的答案对大家有所帮助,也希望大家多多支持IT屋!