ホームページ > 記事 > ウェブフロントエンド > 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('file', this.$refs.yin.files[0]); this.$axios({ url: 'http://localhost/php/file_upload/file_updata.php', method: 'post', 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('Access-Control-Allow-Methods:POST'); // 响应头设置 header('Access-Control-Allow-Headers:x-requested-with, content-type'); header("Content-type: text/html; charset=utf-8"); $file = $_FILES["file"]; if ($file["error"] > 0) { echo "错误:" . $file["error"]; } else { $name = iconv('utf-8', 'gb2312', "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['tmp_name'], $name)) { move_uploaded_file($file['tmp_name'], "upload/" . $file["name"]); } } }
必ず構造を明確に確認してください。そうでない場合、アップロードされたファイルは保存できません。
PHP のヘッダー情報でクロスドメイン問題を解決し、utf-8 トランスコードで文字化け問題を解決し、取得したファイルをアップロード フォルダーに置きます。
は次のとおりです。
完璧な関連する推奨事項:プログラミング関連の知識について詳しくは、
プログラミング教育をご覧ください。 !
以上がvue+axios+php はファイルアップロード機能をどのように実装していますか?の詳細内容です。詳細については、PHP 中国語 Web サイトの他の関連記事を参照してください。