ホームページ > バックエンド開発 > PHPチュートリアル > Yii2 は独自の UploadFile を使用してファイルのアップロードを実装します

Yii2 は独自の UploadFile を使用してファイルのアップロードを実装します

WBOY
リリース: 2016-07-28 08:29:25
オリジナル
1035 人が閲覧しました

まず、yii2 でサポートされている画像アップロードを処理する方法を見てみましょう。

まず、modelUpload.php ファイルを作成します

<&#63;php
namespace backend\models;
use Yii;
use yii\web\UploadedFile;
class Upload extends \yii\db\ActiveRecord
{
/**
* @var UploadedFile|Null file attribute
*/
public $file;
/**
* @return array the validation rules.
*/
public function rules()
{
return [
[["file"], "file",],
];
}
}
ログイン後にコピー

次に、ビューレイヤーがどのようにレンダリングされるかを確認します

<&#63;php
use yii\widgets\ActiveForm;
$form = ActiveForm::begin(["options" => ["enctype" => "multipart/form-data"]]); ?>
<&#63;= $form->field($model, "file")->fileInput() ?>
<button>Submit</button>
<&#63;php ActiveForm::end(); &#63;>

ログイン後にコピー

最後に、コントローラーレイヤーを実装します

namespace backend\controllers;
use backend\models\Upload;
use yii\web\UploadedFile;
class ToolsController extends \yii\web\Controller
{
/**
* 文件上传
* 我们这里上传成功后把图片的地址进行返回
*/
public function actionUpload ()
{
$model = new Upload();
$uploadSuccessPath = "";
if (Yii::$app->request->isPost) {
$model->file = UploadedFile::getInstance($model, "file");
//文件上传存放的目录
$dir = "../../public/uploads/".date("Ymd");
if (!is_dir($dir))
mkdir($dir);
if ($model->validate()) {
//文件名
$fileName = date("HiiHsHis").$model->file->baseName . "." . $model->file->extension;
$dir = $dir."/". $fileName;
$model->file->saveAs($dir);
$uploadSuccessPath = "/uploads/".date("Ymd")."/".$fileName;
}
}
return $this->render("upload", [
"model" => $model,
"uploadSuccessPath" => $uploadSuccessPath,
]);
}
}
ログイン後にコピー

上記はエディターが紹介するものですYii2 は、組み込みの UploadFile を使用してファイルのアップロードに関する知識を実装しています。ご質問があれば、メッセージを残してください。編集者がすぐに返信します。このウェブサイトをご利用いただき、誠にありがとうございます。

上記は、Yii2 が独自の UploadFile を使用して実装したファイルのアップロードを、関連する内容も含めて紹介しています。PHP チュートリアルに興味のある友人に役立つことを願っています。

関連ラベル:
ソース:php.cn
このウェブサイトの声明
この記事の内容はネチズンが自主的に寄稿したものであり、著作権は原著者に帰属します。このサイトは、それに相当する法的責任を負いません。盗作または侵害の疑いのあるコンテンツを見つけた場合は、admin@php.cn までご連絡ください。
最新の問題
人気のチュートリアル
詳細>
最新のダウンロード
詳細>
ウェブエフェクト
公式サイト
サイト素材
フロントエンドテンプレート