簡體   English   中英

如何將圖像文件上傳到php后台腳本,即使用ajax

[英]How can I upload an image file to a php background script, i.e, using ajax

我正在嘗試使用ajax將圖像文件上傳到服務器。 但是,到目前為止,我只使用ajax將數據傳輸到后台php腳本。 我沒有用文件這樣做。但是,我正在嘗試如下: -

     <form id="imageUploadForm" action="profileThis.php" method="POST"
       enctype="multipart/formdata"> 

         <input  type="file" id="boozeImgFile" name="boozeImgFile" >  

         <input type="button" onclick="uploadImage()" value="Upload">

    </form>

我的ajax代碼如下

      $("imageUploadForm").request(
       {
         method:'post',

         parameters:{category:$("category").value, categoryId:$("categoryId").value, userId:

         $("userInSession").value, uploadImage:'true'}, 

         onComplete:function()
         {
           alert("successfully uploaded to profilethis.php");

         },

         onSuccess:function(ajax)
         {
           alert(ajax.responseText);      

          },

         onFailure:ajaxFailure,

         onException:ajaxFailure
      }); 

但是,當我嘗試使用$filename=$_FILES["boozeImgFile"]["name"]在后台腳本中檢索它時,它無法正常工作

我的個人資料這個.php看起來像這樣

       if(isset($_REQUEST['uploadImage']))
       { 
         $name=$_FILES["boozeImgFile"]["name"];        

         $tempName=$_FILES["boozeImgFile"]["tmp_name"];

         $size=$_FILES["boozeImgFile"]["size"];

         $type=$_FILES["boozeImgFile"]["type"];

         if(($type=="image/jpg"||$type=="image/jpeg"||$type=="image/pjpeg")&&         ($size>0&&$size<=4096000))
         {
        $userId=clearSpecialChars($_REQUEST['userId']);

                $tempName=$_FILES["boozeImgFile"]["tmp_name"];

            $category=clearSpecialChars($_REQUEST['category']);

            $categoryId=clearSpecialChars($_REQUEST['categoryId']);

               $name="img_".$userId."_".$filename;


               $rootDir="C:/xampp/htdocs";

               $dir="/boozeimg/".$category."/".$categoryId;

               $fullDirectory=$rootDir.$dir;

               $realPath=$dir."/".$name;

               $fullPath=$rootDir.$dir."/".$name;


       if(is_dir($fullDirectory))
       {
        move_uploaded_file($tempName, $fullPath);

       }
       else
       {
        mkdir($fullDirectory,0777,true);

        move_uploaded_file($tempName, $fullPath);

       }
     }

在profileThis.php中,if條件中的第一行未到達,但if條件本身確實達到了

那么快速的答案就是你做不到。 您無法使用AJAX上傳文件。 您可以做的是讓表單的目標成為隱藏的iframe並將表單提交給該表單。 它在結果上基本上是相同的,但在技術上完全不同。 大多數人仍然使用術語ajax(包括我即將推出的url),但它絕對不是ajax。 這是一個簡短教程的鏈接:

http://www.coursesweb.net/ajax/upload-images

我將研究使用一個名為Uploadify的酷jQuery插件。 如果你不了解這個過程的所有部分,但是網站有很好的文檔/示例,總體來說這是一個非常酷的插件,這看起來有點復雜。

暫無
暫無

聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.

 
粵ICP備18138465號  © 2020-2024 STACKOOM.COM