Skip to content
New issue

Have a question about this project? Sign up for a free GitHub account to open an issue and contact its maintainers and the community.

By clicking “Sign up for GitHub”, you agree to our terms of service and privacy statement. We’ll occasionally send you account related emails.

Already on GitHub? Sign in to your account

在同一个页面是否可以使用两个不同上传管理界面? #8

Open
JamsonWu opened this issue Nov 1, 2017 · 12 comments
Open

Comments

@JamsonWu
Copy link

JamsonWu commented Nov 1, 2017

因为我的需求是在同一个页面,有图片上传与文件上传,谢谢!

@devin87
Copy link
Owner

devin87 commented Nov 1, 2017

可以,创建2个上传管理器即可

@JamsonWu
Copy link
Author

JamsonWu commented Nov 1, 2017

我的想法也是可以通过创建2个上传管理器,但不知道如何与Uploader在对象初始化时进行集成?能否提供简单语句供参考,谢谢您的回复!

@JamsonWu
Copy link
Author

JamsonWu commented Nov 1, 2017

补充一点:我new Uploader()两个,但需要两个不同的UI,一个是文件另一个是图片

@devin87
Copy link
Owner

devin87 commented Nov 1, 2017

你下载最新代码,里面有示例

@JamsonWu
Copy link
Author

JamsonWu commented Nov 2, 2017

再请教一个问题,一个常用的场景:只需要上传一张图片,但允许多次上传,第二次上传覆盖第一次的图片,这种能否实现?

@JamsonWu
Copy link
Author

JamsonWu commented Nov 2, 2017

建议增加以下三个功能:
1、限制单个文件大小
2、允许上传多少个文件
3、上传的图片也允许删除

@JamsonWu
Copy link
Author

JamsonWu commented Nov 2, 2017

真的非常感谢您这么及时回复

@devin87
Copy link
Owner

devin87 commented Nov 5, 2017

  1. 第二次上传覆盖第一次的图片,可以实现,但需要自己写UI,可参考文档和示例
  2. IE9以下不支持获取上传文件大小,对于支持的浏览器,你可以在上传事件(比如select、add)中自行判断(task.size即是文件大小,见 自定义UI实现 task属性)
  3. 允许上传多少个文件和删除上传图片,那是服务端做的事情

@JamsonWu
Copy link
Author

JamsonWu commented Nov 5, 2017

请问使用你的上传框架如何才能实现判断文件大小?有什么解决办法吗?因为这个判断还是很重要的

@devin87
Copy link
Owner

devin87 commented Nov 5, 2017

判断文件大小最好放在服务端做,前端验证只是为了改善用户体验,无法保证安全性。
框架内判断文件大小,上面已经说过了,根据task.size判断即可。

on: {
    add: function(task) {
        //浏览器不支持则跳过
        if (task.size == -1) return;
        
        if (task.size > 2*1024*1024) {
            alert('最大允许上传的文件大小为2MB');
            
            //返回false时该文件不会添加到上传队列
            return false;
        }
    } 
}

@JamsonWu
Copy link
Author

JamsonWu commented Nov 7, 2017

再请教一个问题:
我用jquery.form上传可以取到上传图片的返回值:$("#pic1").change(function() {
var options = {
url: url,
data: { cdn: true, validateFileType: true, lowLevelBrowser: true },
type: "post",
success: function(responseText, statusText) {
alert(responseText); //此处可以取到返回值
},
resetForm: true,
dataType: "html"

			};        

,但用这个框架,发现无法取到返回值:
text = iframe.contentWindow.document.body.innerHTML (这里取不到返回值,但在网络里可以看到请求与响应的值)
请问这可能是什么原因?

@devin87
Copy link
Owner

devin87 commented Nov 8, 2017

获取不到返回值,一般是跨域引起的

Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment
Labels
None yet
Projects
None yet
Development

No branches or pull requests

2 participants