我們先來看看在yii2中支持的圖片上傳怎么進(jìn)行處理的。
首先我們創(chuàng)建model/Upload.php文件
<?phpnamespace 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層是怎么渲染的
<?phpuse 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,]);}}以上所述是小編給大家介紹的Yii2使用自帶的UploadedFile實(shí)現(xiàn)的文件上傳的相關(guān)知識,希望對大家有所幫助,如果大家有任何疑問請給我留言,小編會及時回復(fù)大家的。在此也非常感謝大家對VeVb武林網(wǎng)網(wǎng)站的支持!
新聞熱點(diǎn)
疑難解答
圖片精選