fans0123 发表于 2023-5-22 19:43:53

【9030】【F-15876】9030版 内置图片上传 采用拖拽方式上传图片,报错。

本帖最后由 Simon.Sun 于 2023-6-9 17:58 编辑

9030版内置图片上传采用拖拽方式上传图片,报错。80105 及我用过的 历史版本没有出现过。

查论坛,之前有贴同样。


图片上传bug - 活字格专区 - 求助中心 - 葡萄城产品技术社区 (grapecity.com.cn)





Shawn.Liu 发表于 2023-5-22 19:43:54

fans0123 发表于 2023-5-23 11:18
是明确不支持了,还是等下一版本解决。换插件涉及该改数据库字段,我的历史记录咋办?
大家都要习惯了,一 ...

大佬,我这边接收到的消息是在9版本不支持拖曳上传是一个Bug,编号F-15876,我们将会在后面的版本修复这个问题,并通知到您。
您目前可以使用点击图片上传框从弹出的对话框中选择要上传的图片,感谢您对活字格的理解和支持~

Shawn.Liu 发表于 2023-5-23 09:28:09

大佬,已复现该问题哈,经过查看浏览器控制台Network的信息,内置图片上传单元格,请求路径为:/FileDownloadUpload/UploadImage,8.0.105版本POST请求参数只有file,直接拖曳上传;

9.0.3版本正常点击图片上传单元格后选择图片上传,新版后台接口新增了uploadLimitId参数,这里参数格式正常;

当使用拖曳方式上传时,这里的uploadLimitId参数为null,后台判断了参数返回了400的响应码;

这边建议您可以选择您提到的帖子里的解决方案,使用FilePreviewer插件拖曳上传(9.0.3测试正常);或者单击图片上传框可以从弹出的对话框中选择要上传的图片的方式。




fans0123 发表于 2023-5-23 11:18:31

本帖最后由 fans0123 于 2023-5-23 11:22 编辑

是明确不支持了,还是等下一版本解决。换插件涉及该改数据库字段,我的历史记录咋办?
大家都要习惯了,一时间不能用,想想都不能接受。大家都痛苦啊!

Shawn.Liu 发表于 2023-5-23 11:52:42

fans0123 发表于 2023-5-23 11:18
是明确不支持了,还是等下一版本解决。换插件涉及该改数据库字段,我的历史记录咋办?
大家都要习惯了,一 ...

收到大佬,我这边去反馈下,看下未来图片上传单元格的策略哈

Simon.hu 发表于 2023-6-14 17:05:21

此bug已经在9.0.4.0中修复,请到官网下载最新版本活字格

Bruce86 发表于 2024-5-27 15:16:53

Simon.hu 发表于 2023-6-14 17:05
此bug已经在9.0.4.0中修复,请到官网下载最新版本活字格

大佬 9.0 版本,自定义JS 上传图片 到服务器时,参数应该怎么传递呀。 系统一直报400错误:

function generateUUID() {
    return crypto.randomUUID ? crypto.randomUUID() : "10000000-1000-4000-8000-100000000000".replace(//g, function (c) {
      return (c ^ crypto.getRandomValues(new Uint8Array(1)) & 15 >> c / 4).toString(16);
    });
}
//获取一个uuid;
var Uid = generateUUID();
console.log(Uid);

var fileInput = document.getElementById('dynamicFileInput');
// 文件对象,例如动态提案加的 <input type="file">获取.
if (!fileInput) {
    fileInput = document.createElement('input');
    fileInput.type = 'file'; // 设置类型为文件
    fileInput.setAttribute('accept', 'image/*'); // 设置接受的文件类型为图片文件
    //fileInput.multiple = true; // 启用多选功能
    fileInput.style.display = 'none'; // 隐藏元素
    fileInput.id = 'dynamicFileInput'; // 给元素添加一个ID,以便以后可以查询到它
    document.body.appendChild(fileInput); // 将元素添加到文档中
}

fileInput.addEventListener('change', function (event) {
    // 创建一个FormData对象
    const files = event.target.files; // 获取选择的文件列表
    var file = fileInput.files; // 获取选择的文件
    var formData = new FormData();

    // 将文件添加到FormData对象中
    formData.append('file', file, file.name);
   
    //添加uploadLimitId参数
    formData.append('uploadLimitId', Uid);

    // // 设置请求的headers,如果需要的话
    // var headers = {
    //   'Content-Type': 'multipart/form-data; boundary=----WebKitFormBoundaryhiJyoahBmhuOUMwx'//WebKitFormBoundaryiNHGXYEXdedFStAl


    // };

    // 使用fetch发送POST请求
    var appname = Forguncy.Helper.SpecialPath.getBaseUrl().replace(/\//g, '');//jgj
    var urlname = document.location.origin;
    var app = urlname + '/' + appname + '/FileDownloadUpload/UploadImage';//

    console.log(app);
    fetch(app, {
      method: 'POST',
      body: formData,
      // headers: headers, // 如果服务器需要特定的Content-Type,可以取消注释这一行
    })
      .then(response => {
            // 检查响应状态
            if (!response.ok) {
                // 如果响应状态码不是2xx,抛出错误
                throw new Error('Network response was not ok');
            }
            // 服务器返回的是text/plain类型的数据,使用.text()方法读取
            return response.text();
      })
      .then(text => {
            // 这里的text变量包含了服务器返回的文本数据

            console.log('图片地址', text);
            alert(text);
      })
      .catch((error) => {
            console.error('Error:', error);
      });
});

// 触发文件输入的点击事件,打开文件选择对话框
fileInput.click();

Shawn.Liu 发表于 2024-5-27 18:09:48

Bruce86 发表于 2024-5-27 15:16
大佬 9.0 版本,自定义JS 上传图片 到服务器时,参数应该怎么传递呀。 系统一直报400错误:
大佬,这边看您已经发新帖处理了,后面在新帖中交流哈

9.1 如何调用图片上传控件
https://gcdn.grapecity.com.cn/showtopic-219848-1-1.html
(出处: 葡萄城开发者社区)
页: [1]
查看完整版本: 【9030】【F-15876】9030版 内置图片上传 采用拖拽方式上传图片,报错。