weinirumo
被你的思路带偏了。图片上传一个方法就能搞定了。如果你有不同的表单要保存不同的图片,最好的做法是把文件上传的name值都写成一样的,调用一个方法ajax上传图片,完成以后,返回一个文件id,或者图片路径,用ajax把返回的值放到隐藏域里边,最后跟表单一起提交就行了。这样就获得了保存了图片的信息。也不用写多个接收文件上传的代码。如果还有问题可以跟我联系~~~~
- weinirumo 回答了问题 composer 安装 七牛怎么安装
你的composer貌似有问题,如果比较着急,最好是绕过composer安装。把七牛的php sdk封装成一个组件,就能用了。
- weinirumo 赞了回答
<?php $form = ActiveForm::begin(['options' => ['enctype' => 'multipart/form-data']]) ?> <?= $form->field($model, 'file')->fileInput() ?> <?php ActiveForm::end(); ?>
- weinirumo 发表了说说有人听说过翼商城吗?
- weinirumo 2016-11-26 已签到连续签到3天,获得了15个金钱
- weinirumo 回答了问题 yii2 文件无法上传
第一个if语句,内容换成Yii::$app->request->isPost,试一下。还有,你的文件验证规则应该是上传Excel文件的,你是不是上传了其他类型的文件。如果还有问题,在控制器里打印上传错误看一下,print_r($model->getErrors()),根据报错来处理。
我通过查看文档的多文件上传,觉得你可以尝试下修改两个地方:
- 视图文件 name 应该是个数组
<input id="input-700" name="Articles[]" type="file" multiple >
- 控制器
你应该调用 UploadedFile::getInstances() 而不是 UploadedFile::getInstance() 来把 UploadedFile 实例数组赋值给 UploadForm::imageFiles。
$model->images = UploadedFile::getInstances($model, 'Articles');
类似thumb,和logo都是在model里边写死的。这个想法,不太好实现呀。就是算是开发接口,都是规定好上传的name值。这个问题还是值得研究一下的,不过我要下班了,有时间了再帮你想办法吧。