JS / PHP-フォームファイルとPHPファイルアップロードフィールドのバックグラウンド処理

フォームフィールドファイルアップロードファイルやPHPのバックグラウンド処理

1.htmlコードセクション:

  フォームフォーム、chechbox、ラジオ、ファイルのフィールド、ドロップダウンボックスやその他のコンポーネントは、スタイルのスタイルを変更することはできませんので、見た目の良いするために、最初の自分のスタイルを変更します

  基本的な考え方:

  • アバター、次に入力しましょう:まず、ラベルの入力を結合アバター表示:なし。このラベルをクリックすると、ファイル・ドメインを選択することができるようになります
  • I IMGして、ラベルを追加し、ブロッキング層の空IMGが行われたときに、ここでヘッドの後に提出ディスプレイIMGに使用され、私が使用されています
  • 彼らは長さと幅を持っているので、IMGスタイルの変更とI、
  • 最後に、書き込み入力:隠された、それは隠されたフィールドですが、フォームから送信背景画像アドレスにユーザーが送信を保存することができますページ表示、フォームにデータを提出するために使用することはできません

      <フォームクラス= "水平フォーム" METHOD = "POST" ACTION = "/ ADMIN / -the add.phpユーザ"> 
        <DIV CLASS = "フォームグループ"> 
          <ラベルクラス=「COL。3-SM-CONTROL-ラベル">アバター</ label>は
          <DIV CLASS =" COL-SM-6 "> 
            <! -ここでは、デフォルトのスタイルファイルを変更するには、画像フレームが送信ボタンをだ- > 
            <ラベルクラス="フォーム画像「> 
              <INPUT =述べたIDタイプの「アバター」=「ファイル」>上記
              <IMG SRC =「HTTP://baixiu.test/static/assets/img/default.png」> 
            < -フィールド:!目に見えないテキストボックスに隠れがにありますキー提出する- > 
              <INPUTの種類を= "隠された"名前= "アバター"> 
              <Iクラス= "アップロードはマスクFA-FA"></ I> 
            </ label>は
          </ DIV> 
        </ DIV> 
    </フォーム>

  

2.jsコードセクション:

  フォーカスいるFormData()オブジェクトフォーマットによってキーとバイナリデータにファイルをもたらすことです

      ファイルが送信されたときに、ドメイン用のファイルに//使用形式、ファイル・ドメインも変更イベントをトリガーしました。
      //入力用:ファイル要素、提出された書類は、DOMプロパティファイルに格納されている、あなたが提出されていません。このプロパティによって判断することができ、および要素へのアクセスは、提出
      に$(「#アバターを」) (「変更」機能。 (){ 
          //ファイル選択状態の変更時にイベントハンドラを実行
          VAR = $ $これ(この); 
          VARファイル= $(この).prop( 'ファイル'); 
          //長さがコミットされていないを示し、0であればファイル
          IF {(files.length!)
              リターン; 
          } 
          //ユーザーから提出されたファイルを取得
          するvarファイルファイル= [0]; 
          //非同期のファイルアップロードを================= =========================================== 
          //いるFormDataは、新しいHTML5ですクライアントとサーバー間でバイナリデータを転送するための特別なAJAX操作を持つメンバー、
          VARいるFormData新新データ=(); 
          //キーの方法として保存
          data.append( 'アバター'、ファイル); 
          //カプセル化されていないAJAXによって、より便利に、しかし不便な使用JQにAJAXを介して、サーバに送信された
          VAR =新しい新しいXHRのXMLHttpRequest(); 
          'POST'(xhr.open、 '/admin/api/upload.php'); 
          xhr.send(データ); //バイナリファイルの形式は、バックグラウンドに送信

          xhr.onload =関数(){ 
              //はconsole.log(this.responseText); 
              $この.siblings( 'IMG')のattr( 'SRC'、this.responseText);. 
              $ this.siblings( 'INPUT')ヴァル(this.responseText);. 
          } 
      })
  </ SCRIPT>

 

 

3.PHP背景コードセクション:

  このセクションでは、最初の$ _FILESとアバター用のキーデータを受信し、その中で各項目の意味を学びます

  アップロードに成功かどうかを確認し、新しいアドレスにファイルを保存

  このアドレスは、クライアントに返され、クライアントは、写真を通じてこの問題に対処することができるようになりますimgタグ&新しいユーザデータベース内の対応するアドレスを表示

  

<?PHPが
//サーバが実行する
//ファイルを受け取る
//ファイルの保存
//戻り、ファイルアクセスURL 

IF(空($ _ FILES [ 'アバター'])){ 
    終了( 'ファイルをアップロードする必要があります'); 
} 

アバター_FILES = $ $ [「アバター」]; 
//アバター結合、キーと値のバイナリコンテンツを介して渡されるが、それは、直接印刷値連想配列である場合
、//配列(5){ 
// [ "名前"] => 
元の名前//文字列(12) "widget_5.jpg"クライアントファイル。
// [ "タイプの"] => 
//文字列(10)MIMEタイプ"イメージ/ JPEG"ファイルは、あなたがサポートにこの情報を提供する必要が
// [ "tmp_name"] => 
//文字列(27)「C :\ WINDOWS \一時\ php68F1.tmp「ファイルは、サーバーのアップロード一時ファイル名、通常はシステムのデフォルトに格納された後。php.iniで指定することができますupload_tmp_dir 
// [「エラー」] =>ファイルとアップロードされたエラーコード
// INT(0)
// [ "
} // 
//ファイルが正常にアップロードするかどうか、だけ$アバター[「エラー」] UPLOAD_ERR_OK等しい、それが成功したアップロードを示し
// UPLOAD_ERR_OK 
//値:0;エラーは発生しません、ファイルのアップロードを成功裏。
UPLOAD_ERR_INI_SIZE // 
//値:1;アップロードされたファイルは、の値を制限するphp.iniのオプションのupload_max_filesizeを超えています。
UPLOAD_ERR_FORM_SIZE // 
//値:2;アップロードファイルのサイズは、HTMLフォームを指定する値MAX_FILE_SIZEオプションを超えています。
UPLOAD_ERR_PARTIAL // 
//値:3;ファイルが部分的にしかアップロードされました。
UPLOAD_ERR_NO_FILE // 
//値:4;いいえ、ファイルがアップロードされませんでした。
@:5; 0ザ・のアップロードファイルのサイズ
IF {(!アバター$ [ 'エラー'] == UPLOAD_ERR_OK)
    出口( '失敗したファイル'); 
} 
//サイズ、種類を確認

//サイトにファイルを移動範囲外
//パス情報()連想配列は、経路情報が含まれて返します。例えば:
//配列
//(
// [DIRNAME] => / testweb 
// [ベース名] => test.txtの
// [拡張] => TXT 
//)
//ここで画像ファイル名の接尾辞=> JPG取得するために
$ EXT =パス情報を($アバター[ '名前']、PATHINFO_EXTENSION); 

// uniqid()関数はマイクロ秒に基づいていますそれはユニークなIDを生成し、現在の時間のカウント。
//スプライシング新しいアドレス
uniqid()$ EXTの$ターゲット= '../../static/uploads/img-' .. '' ;.が

新しい場所に// move_uploaded_fileアップロードファイル。成功した場合は、そうでない場合はfalse、trueを返します。
{IF(move_uploaded_file(アバター$ [ 'tmp_name']、$ターゲット)!)
    出口( 'アップロードに失敗した'); 
} 

//正常にアップロード、切片への実際の必要に応じてアドレス文字列
エコーのsubstr($ターゲット、5) ;

  

おすすめ

転載: www.cnblogs.com/Helen-code/p/12514628.html
おすすめ