在我的控制器中
<?php
namespace backend\controllers;
use Yii;
use backend\models\Vendors;
use backend\models\User;
use app\models\VendorsSearch;
use yii\web\Controller;
use yii\web\NotFoundHttpException;
use yii\filters\VerbFilter;
use yii\filters\AccessControl;
use frontend\models\SignupForm;
use backend\models\UserProfiles;
use backend\models\Testuploadmodel;
use yii\web\UploadedFile;
class VendorsController extends Controller
{
public function actionUpdate($id, $user_id)
{
$Testuploadmodel = new Testuploadmodel();
if ($Testuploadmodel->load(Yii::$app->request->post())) {
$path = Yii::getAlias('@frontend') .'/web/uploads/';
$Testuploadmodel->covers =
UploadedFile::getInstance($Testuploadmodel, 'covers');
if ($Testuploadmodel->covers && $Testuploadmodel->validate()) {
$Testuploadmodel->covers->saveAs($path . $Testuploadmodel->covers->baseName . '.' . $Testuploadmodel->covers->extension);
}
return $this->redirect(['view', 'id' => $id, 'user_id' => $user_id]);
}
else {
return $this->render('update', [
'Testuploadmodel' => $Testuploadmodel,
]);
}
}
这是我的模特
<?php
namespace backend\models;
use yii\base\Model;
use yii\web\UploadedFile;
class Testuploadmodel extends Model
{
/**
* @var UploadedFile
*/
//public $imageFile;
public $covers;
public function rules()
{
return [
[['covers'], 'file', 'skipOnEmpty' => false, 'extensions' => 'png, jpg', 'maxFiles' => 4],
];
}
}
?>
这是我的查看文件。在视图文件中我已经更改了不同的选项。我已经在其他工作中实现了相同的功能,但在这里它不起作用。在那里,print_r($ _ POST)显示带有文件字段名称的空数组,但这里的文件字段名称数组显示图像名称。无法找到解决方法。
<?php
use yii\helpers\Html;
use yii\bootstrap\ActiveForm;
$this->params['breadcrumbs'][] = 'Update';
?>
<h1><?= Html::encode($this->title) ?></h1>
<?php $form = ActiveForm::begin(['id' => 'registration-form', 'options' =>
['enctype' => 'multipart/formdata']]); ?>
<ul class="nav nav-tabs">
<li class="active"><a data-toggle="tab" href="#home">Update Vendor</a></li>
<li><a data-toggle="tab" href="#menu1">Update Profile</a></li>
</ul>
<div class="tab-content">
<div id="home" class="tab-pane fade in active">
<h3>Update Vendor</h3>
</div>
<div id="menu1" class="tab-pane fade">
<h3>Update Profile</h3>
<?php echo $form->field($Testuploadmodel, 'covers')->fileInput() ?>
</div>
</div>
<div class = "form-group">
<?php echo Html::submitButton('Submit', ['class' => 'btn btn-primary',
'name' => 'profile-button']) ?>
</div>
<?php ActiveForm::end(); ?>
答案 0 :(得分:0)
问题是&#34; multipart / form-data&#34;中的拼写错误。我写了#34; multipart / formdata&#34;哪个不对。应该有一个&#34; - &#34;在表单和数据之间划分。这就是为什么文件没有上传的原因。
答案 1 :(得分:0)
“ multipart / formdata”通常是文件上传错误背后的基本原因。每当您在任何平台上遇到此问题时,请首先确认“ multipart / formdata”。