【问题标题】:PHP AJAX file uploadPHP AJAX 文件上传
【发布时间】:2012-04-22 21:14:53
【问题描述】:

我查看了 stackoverflow 和一般互联网,但找不到简单的 AJAX 文件上传器(只是表单提交)。我发现的那些不够灵活,不符合我的目的。如果我可以将此脚本调整为文件上传,那就太好了:

<script type="text/javascript">
 function upload(str)
 {
 if (str.length==0)
 { 
document.getElementById("txtHint").innerHTML="";
 return;
  }
 if (window.XMLHttpRequest)
    {// code for IE7+, Firefox, Chrome, Opera, Safari
   xmlhttp=new XMLHttpRequest();
   }
 else
   {// code for IE6, IE5
   xmlhttp=new ActiveXObject("Microsoft.XMLHTTP");
   }
 xmlhttp.onreadystatechange=function()
   {
   if (xmlhttp.readyState==4 && xmlhttp.status==200)
     {
     document.getElementById("hint").innerHTML=xmlhttp.responseText;
     }
   }
 xmlhttp.open("GET","ajax/link.php?q="+str,true);
 xmlhttp.send();
 }

在 HTML 中我会有

<input type='file' onblur='upload(this.value)'>

谢谢

【问题讨论】:

    标签: php javascript ajax upload


    【解决方案1】:

    这是一个简单的ajax文件上传器

    Uploadify

    如果你不想要闪光灯,你可以使用这个;

    AxUploader

    【讨论】:

    • 谢谢,我刚刚使用了 AxUploader。这正是我想要的
    【解决方案2】:

    这并不容易。您不能直接使用ajax 来上传文件。想想会导致的安全问题?如果我在您的 str 字段中输入“/%USER%/Desktop/CreditCardsAndPasswords.txt”怎么办?简而言之,您需要找到并使用您所说的那些“非灵活”上传器,并且必须根据您的需要对其进行编辑。要么这样,要么自己写一个来满足你的目的。

    大多数“ajax”上传器的工作方式是动态创建 Html 输入文件元素,并将表单的 子集(仅文件元素)提交到您网站上的 php 脚本,然后将文件保存到任何临时目录。然后,当您提交表单的其余部分时,您可以“赶上”脚本的其余部分并处理上传文件所需的任何处理。

    那里有许多 ajax '上传者'。随便搜一搜就找到了,真不敢相信所有的都不够好。

    【讨论】:

    • 嗨,问题是我需要一个上传按钮,一旦有人点击上传文件,它就会自动上传。一次只能上传一个文件。
    【解决方案3】:
    var data = new FormData();
    data.append("image_upload",jQuery("#file_upload_input")[0].files[0]);
    jQuery.ajax({
        url: 'url',
        type: 'POST',
        data: data,
        cache: false,
        processData: false, // Don't process the files
        contentType: false, // Set content type to false as jQuery will tell the server its a query string request
        success: function(data, textStatus, jqXHR)
        {
            console.log(data, textStatus, jqXHR);
        },
        error: function(jqXHR, textStatus, errorThrown)
        {
    
            console.log(jqXHR, textStatus, errorThrown);
    
        }
    });
    

    还请检查 post_max_size ini 变量,您将使用它来获取它 echo phpinfo();

    您必须设置要上传的最大文件大小。默认情况下,我认为它是 5mb。并检查增加发布数据大小所需的其他 ini 变量。

    【讨论】:

      猜你喜欢
      • 2014-03-22
      • 2012-06-05
      • 2017-08-25
      • 2010-10-24
      • 2014-05-07
      • 2012-05-04
      相关资源
      最近更新 更多