php+ajax文件上傳

来源:https://www.cnblogs.com/zhouxiaohei/archive/2019/10/20/11706468.html
-Advertisement-
Play Games

前端頁面代碼 <!-- enctype 定義form要上傳文件類型--> <form action="" method="post" id="t" enctype="multipart/form-data"> <!-- multiple 作用是可以同時選中多個文件,多張圖片 accept 指定inp ...


  1. 前端頁面代碼


<!-- enctype 定義form要上傳文件類型-->

<form action="" method="post" id="t"  enctype="multipart/form-data">

    <!--

    multiple  作用是可以同時選中多個文件,多張圖片

    accept 指定input可以上傳那種類型

    onchange 當本元素動的時候,點擊也屬於 調用abs函數

    -->


    <input type="file" name='tables_a[]' id="tables"  multiple accept="image/*" onchange="abs()">

    <!-- 隱藏域  在上傳完文件以後,把文件的地址賦給input tables_2 的值 -->

    <input type="hidden" name='tables' id='tables_2'>

    <!-- 提交表單 -->

    <input type="submit" value="提交">

</form>


<!--jquery 必須有,一定要放在執行js的上方,可以是頭部-->

<script src="/js/jquery-1.8.3.js"></script>

<script>

    /*定義函數*/

    function abs(){

        /*獲得文件*/

        var fileArray = document.getElementById('tables').files[0];

        /*初始化 FormData 對象 文件處理對象  序列化表單數據*/

        var formData = new FormData();

        /*給對象中添加文件信息,沒有對象或者沒有文件信息後臺是得不到的*/

            formData.append('file', fileArray);

        /*jquery ajax 方法*/

        $.ajax({

            url: "ceshiphp.php",/*傳向後臺伺服器文件*/

            type: 'POST',    /*傳遞方法 */

            data:formData,  /*要帶的值,在這裡只能帶一個formdata ,不可以增加其他*/

             //傳遞的數據

            dataType : 'json',  //傳遞數據的格式

            async:false, //這是重要的一步,防止重覆提交的

            cache: false,  //設置為false,上傳文件不需要緩存。

            contentType: false,//設置為false,因為是構造的FormData對象,所以這裡設置為false。

            processData: false,//設置為false,因為data值是FormData對象,不需要對數據做處理。

            success: function (responseStr){

                if(responseStr.code != 0){

                    alert('上傳成功');

                    $('#tables_2').val(responseStr.data);

                }else{

                    alert('上傳失敗');

                }

            },

            error: function () {

                alert("上傳錯誤!");

            }

        });

    }

</script>

2.後端頁面代碼

 echo "<pre>";

 print_r($_FILES);

 echo "</pre>";

    列印出以下內容,

    name 文件名稱

    type 文件類型

    tmp_name 文件臨時地址

    erro 錯誤編碼

    size 文件大小

 

    /*得到文件名稱並且賦值給$name變數*/

    $name = $_FILES['fileArray']['name'];

    /*截取文件尾碼並複製給$last*/

    $last = substr($name,strrpos($name,'.'));

    /*使用時間戳修改文件名稱連接尾碼並且複製給$name*/

    $name = date('YmdHis').rand(10000,99999).$last;

    /*定義要傳文件的位置路徑*/

    $address = ROOT_PATH.'/upload/'.$name;

    /*使用函數move_uploaded_file 移動臨時文件到定義好的地址*/

    if(move_uploaded_file($_FILES['fileArray']['tmp_name'],$address)){

        echo 1;

    }else{

        echo 0;

    }



您的分享是我們最大的動力!

-Advertisement-
Play Games
更多相關文章
  • 本文的最新內容將在 "GitHub" 上實時更新。歡迎在GitHub上關註我,一起入門和進階前端。 前言 我周圍的碼農當中,有很多是技術大神,卻常常被字體這種簡單的東西所困擾。 這篇文章,我們來講一講關於字體的常識。這些常識所涉及到的問題,有很強的可操作性,都是在實際業務中真實遇到的,都是需要開發同 ...
  • 基於Tomcat,首次使用Eclipse開發Web項目(JSP) ...
  • JavaScript 日期輸出 預設情況下,JavaScript 將使用瀏覽器的時區並將日期顯示為全文本字元串: 創建 Date 對象 Date 對象由新的 Date() 構造函數創建。 有 4 種方法創建新的日期對象: new Date() new Date(year, month, day, h ...
  • 1. Extract Method(提煉函數) 將代碼段放進一個獨立函數中,並讓函數名稱解釋該函數的用途。 示例: void printOwing(double amount) { printBanner(); //print details System.out.println("name: " ...
  • 前言 今天我們看的是訪問者模式【Visitor Pattern 】,我們理解訪問者模式這個名稱可能會有利於我們理解其核心代碼塊。我們看這麼個例子:我去朋友家做客,那麼朋友屬於主人,我則屬於訪問者。這時剛好朋友在炒菜,卻沒得醬油了。如果朋友下去買醬油將會很麻煩而且會影響炒菜。這時就到我這個訪問者出馬了 ...
  • 本文是我翻譯《JavaScript Concurrency》書籍的第二章 JavaScript運行模型,該書主要以Promises、Generator、Web workers等技術來講解JavaScript併發編程方面的實踐。 完整書籍翻譯地址: "https://github.com/yzsunl ...
  • 單獨的資料庫: 微服務設計的一個關鍵是資料庫設計,基本原則是每個服務都有自己單獨的資料庫,而且只有微服務本身可以訪問這個資料庫。它是基於下麵三個原因。 + 優化服務介面 :微服務之間的介面越小越好,最好只有服務調用介面(RPC或消息),沒有其他介面。如果微服務不能獨享自己的資料庫,那麼資料庫也變成了 ...
  • 前兩天看到 某個程式猿寫了個爬蟲,然後公司200多人被端, 作為在入門python 的小白, 產生了興趣,於是乎學習了下,寫了一個小爬蟲,做一些入門的抓爬,爬點美女圖片吧 ! let's do it 看一眼美女,寫代碼的興緻就上來了 爬蟲是通過找到要爬的圖片的url 然後進行下載, 這個url怎麼找 ...
一周排行
    -Advertisement-
    Play Games
  • 移動開發(一):使用.NET MAUI開發第一個安卓APP 對於工作多年的C#程式員來說,近來想嘗試開發一款安卓APP,考慮了很久最終選擇使用.NET MAUI這個微軟官方的框架來嘗試體驗開發安卓APP,畢竟是使用Visual Studio開發工具,使用起來也比較的順手,結合微軟官方的教程進行了安卓 ...
  • 前言 QuestPDF 是一個開源 .NET 庫,用於生成 PDF 文檔。使用了C# Fluent API方式可簡化開發、減少錯誤並提高工作效率。利用它可以輕鬆生成 PDF 報告、發票、導出文件等。 項目介紹 QuestPDF 是一個革命性的開源 .NET 庫,它徹底改變了我們生成 PDF 文檔的方 ...
  • 項目地址 項目後端地址: https://github.com/ZyPLJ/ZYTteeHole 項目前端頁面地址: ZyPLJ/TreeHoleVue (github.com) https://github.com/ZyPLJ/TreeHoleVue 目前項目測試訪問地址: http://tree ...
  • 話不多說,直接開乾 一.下載 1.官方鏈接下載: https://www.microsoft.com/zh-cn/sql-server/sql-server-downloads 2.在下載目錄中找到下麵這個小的安裝包 SQL2022-SSEI-Dev.exe,運行開始下載SQL server; 二. ...
  • 前言 隨著物聯網(IoT)技術的迅猛發展,MQTT(消息隊列遙測傳輸)協議憑藉其輕量級和高效性,已成為眾多物聯網應用的首選通信標準。 MQTTnet 作為一個高性能的 .NET 開源庫,為 .NET 平臺上的 MQTT 客戶端與伺服器開發提供了強大的支持。 本文將全面介紹 MQTTnet 的核心功能 ...
  • Serilog支持多種接收器用於日誌存儲,增強器用於添加屬性,LogContext管理動態屬性,支持多種輸出格式包括純文本、JSON及ExpressionTemplate。還提供了自定義格式化選項,適用於不同需求。 ...
  • 目錄簡介獲取 HTML 文檔解析 HTML 文檔測試參考文章 簡介 動態內容網站使用 JavaScript 腳本動態檢索和渲染數據,爬取信息時需要模擬瀏覽器行為,否則獲取到的源碼基本是空的。 本文使用的爬取步驟如下: 使用 Selenium 獲取渲染後的 HTML 文檔 使用 HtmlAgility ...
  • 1.前言 什麼是熱更新 游戲或者軟體更新時,無需重新下載客戶端進行安裝,而是在應用程式啟動的情況下,在內部進行資源或者代碼更新 Unity目前常用熱更新解決方案 HybridCLR,Xlua,ILRuntime等 Unity目前常用資源管理解決方案 AssetBundles,Addressable, ...
  • 本文章主要是在C# ASP.NET Core Web API框架實現向手機發送驗證碼簡訊功能。這裡我選擇是一個互億無線簡訊驗證碼平臺,其實像阿裡雲,騰訊雲上面也可以。 首先我們先去 互億無線 https://www.ihuyi.com/api/sms.html 去註冊一個賬號 註冊完成賬號後,它會送 ...
  • 通過以下方式可以高效,並保證數據同步的可靠性 1.API設計 使用RESTful設計,確保API端點明確,並使用適當的HTTP方法(如POST用於創建,PUT用於更新)。 設計清晰的請求和響應模型,以確保客戶端能夠理解預期格式。 2.數據驗證 在伺服器端進行嚴格的數據驗證,確保接收到的數據符合預期格 ...