如何上传文件并显示其信息

时间:2011-08-01 07:12:19

标签: php jquery python html ajax

我想构建一个处理一些文件的Web服务。

这是我想要做的:

  1. 用户使用“上传表单”将文件上传到服务器,该文件在服务器端保存为临时文件
  2. 服务器端python脚本处理临时文件并生成一些统计信息(例如,文件中的行数和单词数)
  3. 统计信息显示在“上传表单”
  4. 附近

    这里的问题是:我希望文件在上传后立即在后台中进行处理,完成后,.append()生成的结果将显示在当前视图中。我想要将脚本分配给<form action="processing_script.php">...,因为在点击上传按钮后,用户将被重定向到processing_script.php

    任何线索?也许一些整洁的ajax电话?

3 个答案:

答案 0 :(得分:1)

 function ajaxRequest(){
  var activexmodes=["Msxml2.XMLHTTP", "Microsoft.XMLHTTP"] //activeX versions to check for in IE
  if (window.ActiveXObject){ //Test for support for ActiveXObject in IE first (as XMLHttpRequest in IE7 is broken)
   for (var i=0; i<activexmodes.length; i++){
    try{
     return new ActiveXObject(activexmodes[i])
    }
    catch(e){
     //suppress error
    }
   }
  }
  else if (window.XMLHttpRequest) // if Mozilla, Safari etc
   return new XMLHttpRequest()
  else
   return false
 }

 function postFile(){
 var mypostrequest=new ajaxRequest()
 mypostrequest.onreadystatechange=function(){
  if (mypostrequest.readyState==4){
   if (mypostrequest.status==200 || window.location.href.indexOf("http")==-1){
    document.getElementById("my_Result_tag").innerHTML=mypostrequest.responseText //this is where the results will be put!
   }
   else{
    alert("An error has occured making the request")
   }
  }
 }
 var file = document.getElementById("my_file");
 var parameters="file="+file //i am not sure of this peice though
 mypostrequest.open("POST", "basicform.php", true)
 mypostrequest.setRequestHeader("Content-type", "application/x-www-form-urlencoded")
 mypostrequest.send(parameters)
 }

答案 1 :(得分:0)

是的,你需要ajax。像往常一样创建表单,然后使用Ajax提交它。表格处理可以照常进行。

如果你谷歌'文件上传Ajax'我相信你可以找到你需要的一切:)

答案 2 :(得分:0)

是的,我做了第二次ajax请求并按计划运行(例如每10秒)。如果处理了上传的文件,它将查询服务器。服务器甚至可以在外部程序中进行文件处理。接受第二个ajax请求的php脚本检查一些READY状态并给客户端答案YES / NO / FAILED。当客户接受YES回答时,它会将用户重新发送到结果页面。如果它接受NO,它会提醒用户该问题。