我正在创建一个用于创建和编辑产品的yii2activeform,并希望该页面也能管理图像。我想能够上传(添加)的产品图像,然后有一个可排序的预览区域,在那里的图像显示,可以排序到正确的顺序。我的计划是通过ajax/pjax将文件上传到一个临时文件夹中,表单将从该文件夹中提取并显示在可排序区域中,保存模型后,图像将相应地移动/命名。
最初,我使用Kartik的FileInput小部件(这可能是不必要的)和Kartik的可排序输入对图像进行重新排序。
我相信我可以处理文件上传和移动/重命名,我的问题是如何将图像与表单的其余部分分开上传,然后让ActiveForm将它们拉入可排序的输入区域?此外,我还希望能够从中删除图像(在缩略图的一角有一个小x)。我熟悉使用pjax包装网格视图,甚至熟悉使用pjax将表单提交给pjax方法(在模态中使用),但不知道如何在另一个表单中使用它并使另一个表单动态加载图像。
为了澄清,我有一个扩展ActiveRecords的Products
和一个扩展Model
的ImageForm
。然后,我使用下面的创建操作来执行productController
:
public function actionCreate()
{
$model = new Product();
$images = new ImageForm();
if ($model->load(Yii::$app->request->post()) && $model->save()) {
return $this->redirect(['view', 'id' => $model->id]);
}
return $this->render('create', [
'model' => $model,
'images' => $images,
]);
}
我的目标是能够将图像(通过ImageForm
)上传到产品的create
视图上显示的临时位置。然而,目前,在小部件中使用上载功能只是重新加载页面,图像就消失了。
您可以使用一个单独的模型来上传图像,并使用相同的表单,只需传递$uploadForm
模型对象来填充文件的表单字段,您可以使用
kartik\FileInput
小部件,该小部件具有通过ajax
通过uploadUrl
上传文件的选项,您可以通过fileupload
事件在选择文件时自动触发上载,一旦上载,您有两个选项,可以使用uploadAsync=
fileselect
:通过文件浏览按钮在文件输入中选择文件后,会触发此事件。这与更改事件略有不同,因为即使取消文件浏览对话框,也会触发此事件。
你打算如何使用它
//get filinput object
var $input=$("#input-id");
$input.on('fileselect', function(event, numFiles, label) {
//trigger file upload with 1 sec delay
setTimeout(function() {
$input.fileinput("upload");
}, 1000);
});
此事件仅在ajax上传和同步或异步ajax批处理上传完成后触发。
其他可用参数包括:
>
file:文件堆栈数组(如果不可用,则为空对象)。
extra:插件的uploadExtraData设置(如果不可用,则为空对象)。
样本代码
$('#input-id').on('filebatchuploadcomplete', function(event, files, extra) {
//call the ajax function here to query the files that are uploaded
});
一个简单的问题,但不幸的是没有答案: 我用的是像这样的活动形式的kartik 像这样上传文件的小部件 无论我尝试什么,引导规则都会因为使用类型INLINE而导致无效。使用实现了我的意图,但是我需要用于其他输入字段。 任何想法如何实现我的意图显示部件在整个屏幕宽度?
问题内容: 是否有使用C 读取用于Linux的INI文件等配置的标准方法? 我正在基于Linux的手持设备上工作,并用C编写代码。 否则,我想知道其他选择。 最终更新: 我已经探索甚至使用过LibConfig。但是占用空间很大,而且我的用法太简单了。因此,为了减少占用空间,我推出了自己的实现。该实现不是太通用,实际上到目前为止已经相当耦合了。启动应用程序时,配置文件将被解析一次,并设置为一些全局变
我正在尝试使用多部分实体方法上传文件。但它失败,错误说{“错误”:“文件参数值'无'无效”} 我的代码是: File File = new File(" C:/Users/SST-06/Desktop/new . txt "); 我的实体文件包含所有提到的参数。 -hkYO-pblk 0 uqlxjtvklrbkosxz 7 mye-8 wbvbvanx Content-Disposition:f
我有一个ActiveForm与Kartik的文件输入小部件。它是编辑表单的一种。我在其中获取db数据和图像。 案例1-如果图像已经被添加,当我点击更新按钮时,它会显示所需的大图像字段。案例2-如果我选择新图像,它工作正常。 如何为现有图像的FileInput设置一些值,使其不为空/无效。我想要一个案例1的解决方案。每次它都要求新图像更新任何更改。请帮我把这个修好。
问题内容: 如何使用Ajax在Struts 2中上传文件 问题答案: 下载Struts2 jQuery插件 ,并像通常使用Struts2一样进行操作。
我是REST API的新手。我想上传用户选择的文件到用户提供的路径(远程或本地路径)使用REST API。我的html文件有一个文本框和一个文件选择器。用户将在文本框中输入文件路径(本地或远程计算机文件夹位置)。请建议如何解决这个问题。 下面是我的代码: 例外情况: