有没有办法在使用JavaScript上传之前检查文件大小?
我有一个具有文件上传功能的表单,如果用户尝试上传的文件太大,我希望能够有一些不错的客户端错误报告,有没有办法用jQuery检查文件大小,要么纯粹在客户端或以某种方式将文件发回服务器进行检查?
我正在尝试使用aws-sdk或knox将通过表单提交的文件直接上传到Amazon S3存储桶.表格处理是强大的.
我的问题是:如何使用aws-sdk(或knox)使用这些库的最新功能处理流来正确使用强大的功能?
我知道这个主题已经在这里被提出了不同的风格,即:
但是,我认为答案有点过时和/或偏离主题(即CORS支持,我现在不希望出于各种原因使用)和/或最重要的是,没有提及最新的功能来自aws-sdk(参见:https://github.com/aws/aws-sdk-js/issues/13#issuecomment-16085442)或knox(特别是putStream()或其readableStream.pipe(req)变体,均解释在文档中).
经过几个小时的挣扎,我得出结论,我需要一些帮助(免责声明:我是一个流媒体新手).
HTML表单:
<form action="/uploadPicture" method="post" enctype="multipart/form-data">
<input name="picture" type="file" accept="image/*">
<input type="submit">
</form>
Run Code Online (Sandbox Code Playgroud)
Express bodyParser中间件以这种方式配置:
app.use(express.bodyParser({defer: true}))
Run Code Online (Sandbox Code Playgroud)
POST请求处理程序:
uploadPicture = (req, res, next) ->
form = new formidable.IncomingForm()
form.parse(req)
form.onPart = (part) ->
if not part.filename
# Let formidable handle all non-file parts (fields)
form.handlePart(part)
else
handlePart(part, form.bytesExpected)
handlePart = (part, fileSize) ->
# aws-sdk version
params …Run Code Online (Sandbox Code Playgroud) 我将此代码用于检查文件类型
// - coursesweb.net
// get the file name and split it to separe the extension
var name = el.value;
var ar_name = name.split('.');
Run Code Online (Sandbox Code Playgroud)
但现在我想应用此代码来获取文件大小,我该怎么办?
有没有办法在不将文件上传到 R Shiny 的情况下“查看”文件大小?
javascript ×4
file-upload ×2
amazon-s3 ×1
formidable ×1
http ×1
jquery ×1
node.js ×1
php ×1
r ×1
shiny ×1
shiny-server ×1
validation ×1