ホームページ  >  記事  >  ウェブフロントエンド  >  vue+axios+php はファイルアップロード機能をどのように実装していますか?

vue+axios+php はファイルアップロード機能をどのように実装していますか?

青灯夜游
青灯夜游転載
2020-11-06 17:37:541890ブラウズ

vue+axios+php はファイルアップロード機能をどのように実装していますか?

推奨: 「PHP ビデオ チュートリアル

フォームの送信を行うとき、フォームの送信要件に遭遇することがよくあります。 vue の axios がアップロードされたファイルと衝突した後、何か別のスパークが発生しますか? 一つずつ聞いてください:

まず第一に、webpack を使用しているため、vue の axios のフォーム送信を記述する必要があります。 :

<template lang="pug">
  p
    input(type="file", ref="yin")
    button(@click="submit()") 点击上传
</template>
<script>
  export default{
    methods: {
      submit(){
        let formdata = new FormData();
        formdata.append(&#39;file&#39;, this.$refs.yin.files[0]);
        this.$axios({
          url: &#39;http://localhost/php/file_upload/file_updata.php&#39;,
          method: &#39;post&#39;,
          data: formdata,
        }).then((res) => {
          console.log(res.data)
        })
      }
    }
  }
</script>

pug テンプレートを使用します。HTML に変更することもできます。無害です。主に js ロジック コードに依存します。最初に FormData オブジェクトを宣言し、次に post で値を渡します。この時点では、 URL は wamp で使用する PHP ファイルです。ファイルは次のとおりです:

<?php
/**
 * Created by PhpStorm.
 * User: DELL
 * Date: 2017/11/23
 * Time: 10:57
 */
header("Access-Control-Allow-Origin:*");
// 响应类型
header(&#39;Access-Control-Allow-Methods:POST&#39;);
// 响应头设置
header(&#39;Access-Control-Allow-Headers:x-requested-with, content-type&#39;);
header("Content-type: text/html; charset=utf-8");
$file = $_FILES["file"];
if ($file["error"] > 0) {
    echo "错误:" . $file["error"];
} else {
    $name = iconv(&#39;utf-8&#39;, &#39;gb2312&#39;, "upload/" . $file["name"]);
    echo "文件名称:" . $file["name"] . "</br>";
    echo "文件类型:" . $file["type"] . "</br>";
    echo "文件大小:" . ($file["size"] / 1024) . "K</br>";
    echo "文件临时存储的位置:" . $file["tmp_name"] . "</br>";


    //保存上传的文件
    if (file_exists("upload" . $file["name"])) {
        echo $file["name"] . "文件已经存在";
    } else {
        //如果目录不存在则将该文件上传
        if (move_uploaded_file($file[&#39;tmp_name&#39;], $name)) {
            move_uploaded_file($file[&#39;tmp_name&#39;], "upload/" . $file["name"]);
        }
    }
}

必ず構造を明確に確認してください。そうでない場合、アップロードされたファイルは保存できません。

PHP のヘッダー情報でクロスドメイン問題を解決し、utf-8 トランスコードで文字化け問題を解決し、取得したファイルをアップロード フォルダーに置きます。

は次のとおりです。

完璧な

関連する推奨事項:


2020 年のフロントエンド vue インタビューの質問の概要 (回答付き)

vue チュートリアルの推奨事項: 2020 年最新の 5 つの vue.js ビデオ チュートリアルのセレクション

プログラミング関連の知識について詳しくは、

プログラミング教育をご覧ください。 !

以上がvue+axios+php はファイルアップロード機能をどのように実装していますか?の詳細内容です。詳細については、PHP 中国語 Web サイトの他の関連記事を参照してください。

声明:
この記事はcnblogs.comで複製されています。侵害がある場合は、admin@php.cn までご連絡ください。