使用 yii2 和 kartik fileInput 扩展上传多张图片
uploading multiple images using yii2 and kartik fileInput extension
我在使用 yii2 和 Kartik fileInput 扩展上传多张图片时遇到了这个小问题。
这是型号:
public $file;
public static function tableName()
{
return 'news';
}
public function rules()
{
return [
[['news_desc', 'news_context', 'news_first_source', 'news_second_source', 'news_third_source', 'news_responsibe_party', 'news_first_testimony', 'news_second_testimony', 'news_body', 'news_lang'], 'string'],
[['news_gov_id', 'news_typ_id', 'news_is_in_slider', 'news_is_act', 'news_is_del'], 'integer'],
[['news_happened_date', 'news_created_date', 'file'], 'safe'],
[['news_typ_id', 'news_lang'], 'required'],
[['news_title'], 'string', 'max' => 255],
[['file'], 'file','maxFiles' => 6],
];
}
如您所见,我正在使用 maxFiles,但它对我不起作用
控制器:
public function actionCreate_news()
{
$model = new News();
if ($model->load(Yii::$app->request->post())) {
$model->file = UploadedFile::getInstances($model, 'file');
var_dump($model->file);
die();}}
现在我只是 var dump 我得到的文件,但问题是只有一个文件而不是我上传的所有文件
查看:
echo FileInput::widget([
'model' => $model,
'attribute' => 'file[]',
'name' => 'file[]',
'options' => [
'multiple' => 'true',
'accept' => 'image/*'
],
'pluginOptions' => [
'showCaption' => false,
'showRemove' => false,
'showUpload' => false,
'allowedFileExtensions' => ['jpg','jpeg','png'],
'overwriteInitial' => false
],
]);
我已经阅读了有关此问题的所有内容并尝试了所有可能的解决方案,但问题仍然存在
当我按表单提交时,只会提交最后一个文件
谢谢
从此小部件中删除 'name' => 'file[]',
也从 true 中删除单引号。
echo FileInput::widget([
'model' => $model,
'attribute' => 'file[]',
'options' => [
'multiple' => true,
'accept' => 'image/*'
],
'pluginOptions' => [
'showCaption' => false,
'showRemove' => false,
'showUpload' => false,
'allowedFileExtensions' => ['jpg','jpeg','png'],
'overwriteInitial' => false
],
]);
原文:
echo FileInput::widget([
'model' => $model,
'attribute' => 'attachment_1[]',
'options' => ['multiple' => true]
]);
谢谢大家 我想出了我的问题的解决方案我在提交表单时尝试上传图片但结果我错了所以我使用小部件使用ajax上传图片就像在这里:
http://webtips.krajee.com/ajax-based-file-uploads-using-fileinput-plugin/
然后使用插件事件,我在提交表单时将文件名保存在数据库中
我在使用 yii2 和 Kartik fileInput 扩展上传多张图片时遇到了这个小问题。
这是型号:
public $file;
public static function tableName()
{
return 'news';
}
public function rules()
{
return [
[['news_desc', 'news_context', 'news_first_source', 'news_second_source', 'news_third_source', 'news_responsibe_party', 'news_first_testimony', 'news_second_testimony', 'news_body', 'news_lang'], 'string'],
[['news_gov_id', 'news_typ_id', 'news_is_in_slider', 'news_is_act', 'news_is_del'], 'integer'],
[['news_happened_date', 'news_created_date', 'file'], 'safe'],
[['news_typ_id', 'news_lang'], 'required'],
[['news_title'], 'string', 'max' => 255],
[['file'], 'file','maxFiles' => 6],
];
}
如您所见,我正在使用 maxFiles,但它对我不起作用
控制器:
public function actionCreate_news()
{
$model = new News();
if ($model->load(Yii::$app->request->post())) {
$model->file = UploadedFile::getInstances($model, 'file');
var_dump($model->file);
die();}}
现在我只是 var dump 我得到的文件,但问题是只有一个文件而不是我上传的所有文件
查看:
echo FileInput::widget([
'model' => $model,
'attribute' => 'file[]',
'name' => 'file[]',
'options' => [
'multiple' => 'true',
'accept' => 'image/*'
],
'pluginOptions' => [
'showCaption' => false,
'showRemove' => false,
'showUpload' => false,
'allowedFileExtensions' => ['jpg','jpeg','png'],
'overwriteInitial' => false
],
]);
我已经阅读了有关此问题的所有内容并尝试了所有可能的解决方案,但问题仍然存在
当我按表单提交时,只会提交最后一个文件
谢谢
从此小部件中删除 'name' => 'file[]',
也从 true 中删除单引号。
echo FileInput::widget([
'model' => $model,
'attribute' => 'file[]',
'options' => [
'multiple' => true,
'accept' => 'image/*'
],
'pluginOptions' => [
'showCaption' => false,
'showRemove' => false,
'showUpload' => false,
'allowedFileExtensions' => ['jpg','jpeg','png'],
'overwriteInitial' => false
],
]);
原文:
echo FileInput::widget([
'model' => $model,
'attribute' => 'attachment_1[]',
'options' => ['multiple' => true]
]);
谢谢大家 我想出了我的问题的解决方案我在提交表单时尝试上传图片但结果我错了所以我使用小部件使用ajax上传图片就像在这里: http://webtips.krajee.com/ajax-based-file-uploads-using-fileinput-plugin/
然后使用插件事件,我在提交表单时将文件名保存在数据库中