溫馨提示×

您好,登錄后才能下訂單哦!

密碼登錄×
登錄注冊(cè)×
其他方式登錄
點(diǎn)擊 登錄注冊(cè) 即表示同意《億速云用戶服務(wù)條款》

怎么在Yii2中利用UploadedFile上傳文件

發(fā)布時(shí)間:2021-02-03 11:29:37 來源:億速云 閱讀:304 作者:Leah 欄目:開發(fā)技術(shù)

這篇文章將為大家詳細(xì)講解有關(guān)怎么在Yii2中利用UploadedFile上傳文件,文章內(nèi)容質(zhì)量較高,因此小編分享給大家做個(gè)參考,希望大家閱讀完這篇文章后對(duì)相關(guān)知識(shí)有一定的了解。

首先我們創(chuàng)建model\Upload.php文件

<?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",],
];
}
}

下面我們看看view層是怎么渲染的

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

最后實(shí)現(xiàn)controller層的實(shí)現(xiàn)

namespace backend\controllers;
use backend\models\Upload;
use yii\web\UploadedFile;
class ToolsController extends \yii\web\Controller
{
/**
* 文件上傳
* 我們這里上傳成功后把圖片的地址進(jìn)行返回
*/
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,
]);
}
}

關(guān)于怎么在Yii2中利用UploadedFile上傳文件就分享到這里了,希望以上內(nèi)容可以對(duì)大家有一定的幫助,可以學(xué)到更多知識(shí)。如果覺得文章不錯(cuò),可以把它分享出去讓更多的人看到。

向AI問一下細(xì)節(jié)

免責(zé)聲明:本站發(fā)布的內(nèi)容(圖片、視頻和文字)以原創(chuàng)、轉(zhuǎn)載和分享為主,文章觀點(diǎn)不代表本網(wǎng)站立場,如果涉及侵權(quán)請(qǐng)聯(lián)系站長郵箱:is@yisu.com進(jìn)行舉報(bào),并提供相關(guān)證據(jù),一經(jīng)查實(shí),將立刻刪除涉嫌侵權(quán)內(nèi)容。

AI