文件没有在阿贾克斯PHP的MySQL上传 [英] file is not uploading in ajax php mysql

查看:180
本文介绍了文件没有在阿贾克斯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 =按钮>

               < D​​IV 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>< /输入>
               < D​​IV 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屋!

查看全文
登录 关闭
扫码关注1秒登录
发送“验证码”获取 | 15天全站免登陆