ASP中的上传FROM中enctype="multipart/form-data"传参问题~

Posted

tags:

篇首语:本文由小常识网(cha138.com)小编为大家整理,主要介绍了ASP中的上传FROM中enctype="multipart/form-data"传参问题~相关的知识,希望对你有一定的参考价值。

在一个嵌入式上传页面中,想判断ASPJPEG组件的水印是否要添加,采用的是SELECT控件传参方式 ,但是由于enctype的存在导致传参不成功,大家有什么好的解决方法不?
<input type="file" name="up_file" onChange="load_img(this.value,'this_img')" />
<select name="this_sy" size="1">
<option value="1">添加水印</option>
<option value="0">不加水印</option>
</select> <input type="submit" value="上传" /></form>

参考技术A enctype="multipart/form-data"是上传二进制数据; form里面的input的值以2进制的方式传过去。
form里面的input的值以2进制的方式传过去,所以直接request就得不到值了。
用这个办法试试:
SmartUpload su = new SmartUpload();//新建一个SmartUpload对象
su.getRequest().getParameterValues();取数组值
su.getRequest().getParameter( );取单个参数单个值追问

SmartUpload 是JSP中的吧,我采用的是ASP的一个上传组件,应该如何写?

追答

方法类似,你用的组件应该也有类似的方法。

参考技术B 可以使用无组件上传或者组件上传 如 aspupload,都可以轻松的获取到表单值,里边都有获取函数
如 aspupload
Set Obj = Server.CreateObject("Persits.Upload")
userid=Obj.Form("this_sy").value 获取表单值追问

艾恩ASP无组件上传类,看了下源码是有获取表单值的功能,应该如何使用呢?
Public Function Forms(ByVal formname)
If trim(formname) = "-1" Then
Set Forms = Form
Else
If Form.Exists(LCase(formname)) Then
Forms = Form(LCase(formname))
Else
Forms = ""
End If
End If
End Function

追答

obj 为你的无组件对象
aaa=obj.Forms(formname)
即可

本回答被提问者采纳
参考技术C 试试把参数加到URL中,用Request.QueryString("变量名")提取.如果要放在表单POST,可以试试从上传组件中提取,而不是用Request.Form集合.

知识积累

from表单上传


from 上传文件:
    --form表单上传文件 后端获取文件
注意:
1. method 为post
2.enctype -->from-date
3.用post 要在settings注释一个中间件csrf
eg:<form action="" method="post" enctype="multipart/form-data">
def upload(request):
    # print(request.POST)
    """
    django针对不同类型的数据 会帮你解析并放到不同的方法中供你调用
    """
    if request.method == "POST":
        print(request.FILES)  # django会将文件类型的数据自动放入request.FILES里面
        file_obj = request.FILES.get('myfile')  # 文件对象
        # print(file_obj)
        # print(file_obj.name)
        with open(file_obj.name,'wb') as f:
            for line in file_obj:
                f.write(line)
    return render(request,'upload.html')

orm表格创建

orm 表关系:
    多对多
    一对多
    一对一 
换位思考 先站在一张表上面分析 然后再站在另一张分析

一对多 外键字段建在 多的那一方
多对多 多对多的外键关系需要建立第三张表来专门处理
建表:
    先不要考虑外键关系  先创基表!!
# 小数总共八位 小数占两位
price=models.DecimalField(max_digits=8,decimal_places=2)

# 书跟出版社是一对多 并且书是多的一方 所以外键字段健在书表中
publish_id = models.ForeignKey(to='Publish')  # to用来指代跟哪张表有关系 默认关联的就是表的主键字段

一对多外键字段 创建的时候 同步到数据中 表字段会自动加_id后缀

多对多的关系 外键字段建在任意一方都可以  但是建议你建在查询频率较高的那一方

author = models.ManyToManyField(to='Author')  # django orm会自动帮你创建书籍 和作者的第三张关系表
# author这个字段是一个虚拟字段 不能在表中展示出来 仅仅只是起到一个高速orm 建第三章表的关系的作用

一对一的表关系 外键字段建在任意一方都可以    但是建议你建在查询频率较高的那一方

author_detail=models.OneToOneField(to='Author_detail')  # fk + unique   :外键  / 唯一性

一对一外键字段 创建的时候 同步到数据中 表字段会自动加_id后缀

伪静态:

将一个动态网页伪装成一个静态网页 以此来挺好搜索引擎SEO查询频率和搜藏力度;

搜索引擎其实就是一个也别巨大的爬虫程序
----->设计为.html 结尾

虚拟环境:

给每一个项目,装备该项目所需要的模块 不需要的模块一概不装

每创建一个虚拟环境就类似于你重新下载了一个纯净python解释器

优点:虚拟环境一台机器上可以有N多个
     重新下载了一个纯净python解释器

缺点:不要无限制创建虚拟环境,消耗内存
      会拖硬件/ 软件

以上是关于ASP中的上传FROM中enctype="multipart/form-data"传参问题~的主要内容,如果未能解决你的问题,请参考以下文章

ASP采用multipart/form-data方式上传数据,数据的结构是啥样的?

ASP 表单文件上传

asp.net post方法上传文件 获取控件id和name

html上传表单属性

java的纯JDBC能实现上传下载吗?怎么实现?

asp代码怎样实现无组件上传?