yii框架图片上传

落日映苍穹つ 2022-09-22 12:57 274阅读 0赞

1.在数据库中建立一张表(upload)

Center

2.运用gii生成model层,底下呢是我自己运用gii根据数据库中的表进行建立model层的,upload.php如下:

  1. <?php
  2. namespace app\models;
  3. use yii\web\UploadedFile;
  4. use Yii;
  5. /**
  6. * This is the model class for table "upload".
  7. *
  8. * @property integer $u_id
  9. * @property string $u_name
  10. * @property string $u_pwd
  11. * @property string $u_img
  12. */
  13. class Upload extends \yii\db\ActiveRecord
  14. {
  15. /**
  16. * @inheritdoc
  17. */
  18. public static function tableName()
  19. {
  20. return 'upload';
  21. }
  22. /**
  23. * @inheritdoc
  24. */
  25. public function rules()
  26. {
  27. return [
  28. [['u_name', 'u_pwd', 'u_img'], 'string', 'max' => 255]
  29. ];
  30. }
  31. /**
  32. * @inheritdoc
  33. */
  34. public function attributeLabels()
  35. {
  36. return [
  37. 'u_id' => 'U ID',
  38. 'u_name' => 'U Name',
  39. 'u_pwd' => 'U Pwd',
  40. 'u_img' => 'U Img',
  41. ];
  42. }
  43. public function upload(){
  44. return $this->u_img->saveAs('upload/' . $this->u_img->baseName . '.' . $this->u_img->extension);
  45. }
  46. }

3.建立uploadControler.php,在没有post的接值的时候,进入views/upload/entry.php进行显示上传页面,点击submit进入跳转,跳转进图adds方法里,进行各种判断。不要着急请往下看。

Center 1

  1. <?php
  2. namespace app\controllers;
  3. use Yii;
  4. use yii\filters\AccessControl;
  5. use yii\web\Controller;
  6. use yii\filters\VerbFilter;
  7. use app\models\LoginForm;
  8. use app\models\ContactForm;
  9. use yii\web\UploadedFile;
  10. use app\models\Upload;
  11. class UploadController extends Controller
  12. {
  13. public function actionIndex(){
  14. $model = new Upload();
  15. if ($model->load(Yii::$app->request->post()) && $model->validate()) {
  16. return $this->render('entry-confirm', ['model' => $model]);
  17. } else {
  18. return $this->render('entry', ['model' => $model]);
  19. }
  20. }
  21. public function actionAdds()
  22. {
  23. $model = new Upload();
  24. $request = Yii::$app->request;
  25. $post=$request->post('Upload');
  26. $u_name = $post['u_name'];
  27. $u_pwd = $post['u_pwd'];
  28. //在浏览器输出的值是 yii\web\UploadedFile Object ( [name] => 2.jpg [tempName] => C:\Windows\php3986.tmp
  29. // [type] => image/jpeg [size] => 216848 [error] => 0 )
  30. $arr = $model->u_img = UploadedFile::getInstance($model,'u_img');
  31. if ($model->upload()) {
  32. $u_img = $arr->name;
  33. $connection = \Yii::$app->db;
  34. $result=$connection->createCommand()->insert('upload', [
  35. 'u_name' => $u_name,
  36. 'u_pwd' => $u_pwd,
  37. 'u_img' =>$u_img,
  38. ])->execute();
  39. if($result)
  40. {
  41. echo "添加成功";
  42. }
  43. else
  44. {
  45. echo "添加失败";
  46. }
  47. }
  48. }
  49. }
  50. ?>

4.进入views/upload/entry.php建立entry.php,代码如下:

  1. <?php
  2. use yii\helpers\Html;
  3. use yii\widgets\ActiveForm;
  4. ?>
  5. <?php $form = ActiveForm::begin([
  6. 'action' => ['upload/adds'],
  7. 'method'=>'post',
  8. 'options' => ['enctype' => 'multipart/form-data']
  9. ]); ?>
  10. <?= $form->field($model, 'u_name') ?>
  11. <?= $form->field($model, 'u_pwd') ?>
  12. <?=$form->field($model, 'u_img')->fileInput(['multiple'=>'multiple']);?>
  13. <div class="form-group">
  14. <?= Html::submitButton('Submit', ['class' => 'btn btn-primary']) ?>
  15. </div>
  16. <?php ActiveForm::end(); ?>

发表评论

表情:
评论列表 (有 0 条评论,274人围观)

还没有评论,来说两句吧...

相关阅读

    相关 图片

    开发工具与关键技术:Visual Studio 作者:肖广斌 撰写时间:2019年5月12日 在做项目时,我们在完善一些个人信息、或者一些页面时,我们需要用到图片,