簡體   English   中英

jQuery ajax上傳文件與帖子

[英]jquery ajax upload file with post

嗨,大家好,我需要您的幫助,我與ajax的關系不是很好,我試圖使用php的形式上傳圖像,但是圖像無法到達php卻出現了錯誤

Notice: Undefined index: ImageFile in line 9 

線是這個

move_uploaded_file($_FILES['ImageFile']['tmp_name'], "$Destination/$NewImageName");

這是我的jQuery

     $("#send_friend").click(function(e) { 
    e.preventDefault();
    $("#message").empty();
    $('#loading').show();    
    // getting the values that user typed
    var add_friends = '1';  
    var friend_name  = $("#friend_name").val();
    var friend_url  = $("#friend_url").val();
    var ImageFile = $('#ImageFile').prop('files')[0];  
    // forming the queryString
    var data=   
    'add_friends=' + add_friends +
    '&clan_name=' + clan_name +
    '&friend_name=' + friend_name +
    '&friend_url=' + friend_url +
    '&ImageFile=' + ImageFile;
    // ajax call    
    $.ajax({
        type: "POST",
        url: "components/friends.php",
        data: data,
        success: function(data){ // this happen after we get result 
             $('#loading').hide();
            $("#message").html(data);       


      }
    });    
    return false;
});

這是我的PHP

  if(isset($_POST['add_friends'])){
include "../_database/database.php";
    $Destination = '../imagenes/friends';
    $friend_name      =  $database ->real_escape_string(htmlentities($_REQUEST['friend_name']));
    $friend_url       =  $database ->real_escape_string(htmlentities($_REQUEST['friend_url']));
    if(!isset($_FILES["ImageFile"]) || !is_uploaded_file($_FILES["ImageFile"]["tmp_name"])){
            $NewImageName= 'default.png';
            move_uploaded_file($_FILES["ImageFile"]["tmp_name"], "$Destination/$NewImageName");
        }
        else{
            $RandomNum   = rand(0, 999);
            $ImageName = str_replace(' ','-',strtolower($_FILES['ImageFile']['name']));
            $ImageType = $_FILES["ImageFile"]["type"];
            $ImageExt = substr($ImageName, strrpos($ImageName, '.'));
            $ImageExt = str_replace('.','',$ImageExt);
            $ImageName = preg_replace("/\.[^.\s]{3,4}$/", "", $ImageName);
            $NewImageName = $ImageName.'-'.$RandomNum.'.'.$ImageExt;
            move_uploaded_file($_FILES["ImageFile"]["tmp_name"], "$Destination/$NewImageName");
        }   
    $sql = "INSERT INTO family (name,url, shield)
            VALUES ('".$friend_name."', '".$friend_url."', '".$NewImageName."')";
            $r1 = mysqli_query($database,$sql);
            $sqlResult = $r1;   
    /*** run the sql statement ***/
}

和我的HTML

  <div class="form-group">
<label for="exampleInputFile"  class="supercell">Shield</label>
 <input type="file" id="ImageFile" name="ImageFile"/>

只有文件,我有一些問題,數據庫中填充了所有其他變量,但無法將文件傳遞給php,將不勝感激

您需要將contentType設置為multipart / form-data,因為表單包含一個文件。

type: "post",
contentType: "multipart/form-data"

暫無
暫無

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

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