热门标签 | HotTags
当前位置:  开发笔记 > 编程语言 > 正文

帮忙图片+文字同时上传怎么不行啊

问个低级的问题表单提交<FORMmethodpostenctypemultipartform-data传过去的是二进制的,request不出文本框内容,不用图片
问个低级的问题

表单提交

传过去的是二进制的,request不出文本框内容,不用图片又无法上传图片
怎么办啊?

14 个解决方案

#1


那就 用二进制啊

#2


“无组件上传”本版里搜索一下,很多的!

#3


图片和文字要分成两个Form来上传的.

看看这文章,写得很详细.

系统:Win98se + pws + asp 

编程环境:Visual Interdev 6.0 

数据库:Access2000 (因为网友问的最多的都是Access2000的问题。) 

建一个库:access2000中,先建好一个Test.mdb的数据库。具体有四个字段。 

id | text1 | text2 | img 

自动编号 文本 文本 OLE对象 ’如果是sql server 则选择(image即可) 


三:Are you ready ,Go!!! 


3-1.建上传表单: 

我们知道,图像与文本是两种不同制式的文件(二进制,流式文本)而如果要同一表单提交的话,(file格式提交)则我们获取时就不能用原来的方法request.form而必须用equest.TotalBytes来获得所有的提交资料。但这时两种格式的文件混合在一起比较难分。我的上一贴已经告诉大家用二进制的方法来分开这些资料。但十分麻烦,要用到许多二进值的函数,所以许多网友来信问我有没有更简单的方法,好。我可以告诉大家,有!而且保证下面的方法保证一学就会。(这种方法很另类但伟人说过白猫,黑猫。能上网的就是好猫!) 


upload.asp(具体代码如下) 


<% @ language=Vbscript %> 
 
 
 
 
 
 
 

 
Please choose a picture to upload: 
 
 
 
 

 

 

 
 
 

 
 

3-2 兵分两路来处理数据。 
首先,文本很简单。 

uptext.asp (代码如下) 

<% @ language=Vbscript %> 
<% 
strcOnn="driver={microsoft access driver (*.mdb)};dbq="&server.MapPath("test.mdb") 

text1=request.form("text1") 
text2=request.form("text2") 
response.write text1 
response.write text2 

set rs=Server.CreateObject("adodb.recordset") 
sql="SELECT top 1 * FROM imgtable ORDER BY id DESC" ’这里的意思是选择最后一个Id,既刚刚被改动 
rs.Open sql,strconn,1,3 ’就是你上传的图像的两个文本字段。 

rs("text1")=text1 ’注意,这里是改动不是添加,所以不用addnew。 
rs("text2")=text2 
rs.Update 
rs.Close 
%> 
接着,来处理图像。 
upimage.asp (具体代码如下) 

<% 
FormSize = Request.TotalBytes ’得到数据 
FormData = Request.BinaryRead( FormSize ) 

function ImageUp(formsize,formdata) ’这个函数的功能是截取其中的图像部分。 
bncrlf=chrb(13) & chrb(10) ’做成函数后。以后你可以自己随意使用了。 
divider=leftb(formdata,instrb(formdata,bncrlf)-1) 
datastart=instrb(formdata,bncrlf&bncrlf)+4 
dataend=instrb(datastart+1,formdata,divider)-datastart 
imageup=midb(formdata,datastart,dataend) 
end function 

Image=ImageUp (FormSize,Formdata) ’这里就是图像部分了。 

set rs=server.CreateObject("adodb.recordset") 
strcOnn="driver={microsoft access driver (*.mdb)};dbq="&server.MapPath("test.mdb") 
sql="SELECT * FROM imgtable" 
rs.Open sql,strconn,1,3 

rs.AddNew ’因为表单二在表单一提交的过程中下提交了。 
rs("img").appendchunk Image ’所以这里是添加。 
rs.Update 
rs.Close 


response.cOntenttype="image/gif" 
response.binarywrite imageup(formsize,formdata) ’这里是显示图像。表示成功! 

%> 

啊?!?!原来如此简单! 

四:“显示,我要同页显示” 
终于完成了图文同步提交。(真的是同步吗?不是吗?是吗? 唉,我们只是为了解决问题。何必当真哪?不是 吗?) 
现在我们还要让他同页显示出来。其实,这是同样的思路。我们也用两页来完成。 

主页面:show.asp 

<%@ Language=Vbscript %> 
<% 
strcOnn="driver={microsoft access driver (*.mdb)};dbq="&server.MapPath("test.mdb") 

set rs=Server.CreateObject("adodb.recordset") 
sql="SELECT top 1 * FROM imgtable ORDER BY id DESC" 
rs.Open sql,strconn,1,3 
%> 
 
 
以下是你的上传资料。
 
文本一:<% Response.Write rs("text1") %>
 
文本二:<% Response.Write rs("text2") %>
 

你的图像: 
> ’注意这里,这才是关键。他可以实现网页图像与文本 
 ’共存。 
 

幕后页面:showimg.asp (说他是幕后的页面,因为他潜伏在主页面里。看上是一个页面一样) 

<%@ Language=Vbscript %> 
<% 
strcOnn="driver={microsoft access driver (*.mdb)};dbq="&server.MapPath("test.mdb") 
id=Request("id") 
set rs=server.CreateObject("adodb.recordset") 
sql="SELECT * FROM imgtable where id="&id 
rs.Open sql,strconn,1,3 
response.cOntenttype="image/gif" 
Response.BinaryWrite rs("img") 
%> 

#4


上面的仁兄。这个过程没有执行啊。
Sub form2_onsubmit //** 这里是关键,当form2在提交的过程中时,即活form1的提交 
form1.submit //**所以我们这里用了两个表单,但只用一个提交就可以了。 
End Sub 

所以运行出错。有解决的方法吗?急。

还有个问题就是怎样用个循环把图片都显示出来?

#5


循环显示:  <% 
i=1

  do while not rs2.eof      
 
      %>  
  
            
      
                                     " alt="This is a picture of product" border="0"   Onclick="document.all.bigImg.src='../admin/product/<%=rs2("productbpic")%>',document.all.pictext.innerHTML='<%=rs2("ywproductjj")%>',document.all.dgou.innerHTML=')>Order'">
 <%if i mod 2 =0  then response.Write ""
                                
rs2.movenext
i=i+1

%>


<%
loop%>

#6


这个是每行显示2个,如果显示3个就改:
if i mod 3
下面一样
如果显示一个
那就更简单了!
把if mod 去掉就是
图片混合上传的代码我可以给你给我个你的邮件

#7


jervis82@hotmail.com

#8


现在的大多数上传文件或者图片都是用的无组件上传类,而无组件上传类,你要先建立一个上传对象,并且获取参数的方法也稍有不同。我现在用的是化境的无组件类 。
如果你要获取参数,请参考以下我的代码:
----------------------------------------------------------------------------------


 
<%
set upload=new upload_5xsoft
set file=upload.file("file1")
response.write upload.form("submit")&"
"
if file.fileSize>0 then
 file.saveAs Server.mappath("temp.jpg")
 response.write "
上传文件:"&file.FileName&" => temp.jpg OK!"
 response.write "
文件大小:"&file.FileSize
end if
set file=nothing
set upload=nothing
%> 



---------------------------------------------------------------------------------
以上是化境组件类里带的说明,很好用。而且支持多表单上传,如果你需要的话,可以到http://www.5xsoft.com/去下载吧。。里面带有说明。。

#9


你搜索一下,就很多的
我都发了好几个了,
郁闷

#10


我刚做的,
把源码给你:

------------------------------------------------FenFaEdit.asp
<%@LANGUAGE="Vbscript"%>



<%
if session("UserID")="" then%>
  






<%
Dim TskName,TskType,TskContent,Qd_Flag,beizhu1,beizhu2,beizhu3,Cont
Dim rs,sql,rs1,sql1,conn,exitst
exitst=0
set cOnn=application("conn")
set rs=server.createobject("adodb.recordset")
sql="select * from DistributeTask where ID="&request("cqid")&""
rs.open sql,conn,3,1

TaskID=rs("ID")
TskName=rs("TaskName")
session("TskName")=TskName
TskType=rs("TaskType")
TskCOntent=rs("TaskContent")
session("TskContent")=TskContent
Qd_flag=rs("Flag")
Qd_Run=rs("RepeatRun")
iprang=rs("ValidIPRange")
iprang2=rs("InvalidIPRange")
ostype=rs("OsType")
runtime=rs("TaskStartTime")
beizhu1=rs("Remark1")
beizhu2=rs("Remark2")
beizhu3=rs("Remark3")

Rs.Close
SET rs=nothing 

set rs1=server.createobject("adodb.recordset")
    sql1="select * from DistributeTask where TaskName='"&request("TskName")&"' and ID <> "&request("cqid")&"" 
    rs1.open sql1,conn,3,1

    if rs1.recordcount<>0 then
exitst=1
end if
   
    rs1.close
    set rs1=nothing

%>

 
 

#11



  
  
     当前位置 
      登录 >> 首页 >> 任务管理 >> 任务定义 >> 修改任务     
  





  
  
    
      
        
          说明:系统可创建20项任务
        
        
        
           
        
        
          
  <%if h_error_txt<>"" then%>
     
    错误:

      
<%=listerror(h_error_txt)%>

  <%end if%>

        
        
           
        
    
     bordercolor="d7e3ff" >
      
      
        
            >>> 任务修改
          
        
          
            任务名称:

          
            " size="50">
            ">
">
  
              ">

            *
        


        
          
            任务类型:

          
            
              文件分发
              >补丁分发
              >消息通知
              >控制执行脚本
                                    

          
        


        
          任务内容:

          <%=TskContent%>
  
          
        
        
          (如果是文件或

            补丁请写文件

            或补丁名称)
        

   



#12



          需要上传的个数:
              value="1" size="15" >
                Onclick="setid();" value="设定" >
           
        
        
          文件保存路径:
          
            (默认)
           
        
        
          选择上传的文件:
             
           
        
        
          启动任务:
          
停止
  >
启用 
           
        

        
          是否重复执行:
          
           
   >是
           
        
        
          开始执行时间:
          " size="30">
           
        
        
          分发的IP范围:
          ">
          多个段以

            “;”相隔
        
        
          不分发IP范围:
          ">
          
        
          操作系统:
          " size="30">
            (各操作系统与“/”相隔,例:2000/xp)
           
        
        
          备注一:
          <%=beizhu1%>
           
        
        
          
            备注二:

          <%=beizhu2%>
           
        
        
          
            备注三:

          <%=beizhu3%>
           
        
        
          
            
 
         
 
          
        
      
    
  
  
    
    
  
  
    
    
  



<%
end if%>

#13


该回复被版主删除

#14


谢谢大家!谢谢yxhzj(余华),我已经改好了:)

推荐阅读
  • 深入解析HTML5字符集属性:charset与defaultCharset
    本文将详细介绍HTML5中新增的字符集属性charset和defaultCharset,帮助开发者更好地理解和应用这些属性,以确保网页在不同环境下的正确显示。 ... [详细]
  • 解决Only fullscreen opaque activities can request orientation错误的方法
    本文介绍了在使用PictureSelectorLight第三方框架时遇到的Only fullscreen opaque activities can request orientation错误,并提供了一种有效的解决方案。 ... [详细]
  • 利用python爬取豆瓣电影Top250的相关信息,包括电影详情链接,图片链接,影片中文名,影片外国名,评分,评价数,概况,导演,主演,年份,地区,类别这12项内容,然后将爬取的信息写入Exce ... [详细]
  • 网站访问全流程解析
    本文详细介绍了从用户在浏览器中输入一个域名(如www.yy.com)到页面完全展示的整个过程,包括DNS解析、TCP连接、请求响应等多个步骤。 ... [详细]
  • MySQL 5.7 学习指南:SQLyog 中的主键、列属性和数据类型
    本文介绍了 MySQL 5.7 中主键(Primary Key)和自增(Auto-Increment)的概念,以及如何在 SQLyog 中设置这些属性。同时,还探讨了数据类型的分类和选择,以及列属性的设置方法。 ... [详细]
  • 开机自启动的几种方式
    0x01快速自启动目录快速启动目录自启动方式源于Windows中的一个目录,这个目录一般叫启动或者Startup。位于该目录下的PE文件会在开机后进行自启动 ... [详细]
  • 本文详细介绍了 InfluxDB、collectd 和 Grafana 的安装与配置流程。首先,按照启动顺序依次安装并配置 InfluxDB、collectd 和 Grafana。InfluxDB 作为时序数据库,用于存储时间序列数据;collectd 负责数据的采集与传输;Grafana 则用于数据的可视化展示。文中提供了 collectd 的官方文档链接,便于用户参考和进一步了解其配置选项。通过本指南,读者可以轻松搭建一个高效的数据监控系统。 ... [详细]
  • 在JavaWeb开发中,文件上传是一个常见的需求。无论是通过表单还是其他方式上传文件,都必须使用POST请求。前端部分通常采用HTML表单来实现文件选择和提交功能。后端则利用Apache Commons FileUpload库来处理上传的文件,该库提供了强大的文件解析和存储能力,能够高效地处理各种文件类型。此外,为了提高系统的安全性和稳定性,还需要对上传文件的大小、格式等进行严格的校验和限制。 ... [详细]
  • 大类|电阻器_使用Requests、Etree、BeautifulSoup、Pandas和Path库进行数据抓取与处理 | 将指定区域内容保存为HTML和Excel格式
    大类|电阻器_使用Requests、Etree、BeautifulSoup、Pandas和Path库进行数据抓取与处理 | 将指定区域内容保存为HTML和Excel格式 ... [详细]
  • 在PHP中如何正确调用JavaScript变量及定义PHP变量的方法详解 ... [详细]
  • DVWA学习笔记系列:深入理解CSRF攻击机制
    DVWA学习笔记系列:深入理解CSRF攻击机制 ... [详细]
  • Vim 编辑器功能强大,但其默认的配色方案往往不尽如人意,尤其是注释颜色为蓝色时,对眼睛极为不友好。为了提升编程体验,自定义配色方案显得尤为重要。通过合理调整颜色,不仅可以减轻视觉疲劳,还能显著提高编码效率和兴趣。 ... [详细]
  • 如何将TS文件转换为M3U8直播流:HLS与M3U8格式详解
    在视频传输领域,MP4虽然常见,但在直播场景中直接使用MP4格式存在诸多问题。例如,MP4文件的头部信息(如ftyp、moov)较大,导致初始加载时间较长,影响用户体验。相比之下,HLS(HTTP Live Streaming)协议及其M3U8格式更具优势。HLS通过将视频切分成多个小片段,并生成一个M3U8播放列表文件,实现低延迟和高稳定性。本文详细介绍了如何将TS文件转换为M3U8直播流,包括技术原理和具体操作步骤,帮助读者更好地理解和应用这一技术。 ... [详细]
  • 通过优化动态网络Cookies的全网互通机制,实现了用户在任意子站点的登录和注销操作均能同步至整个网络。具体实现涉及对三个关键文件的修改:首先,在`incDv_ClsMain.asp`中定位并调整`Response.Cookies`的相关设置;其次,更新`global.asa`以确保会话状态的一致性;最后,修改`login.asp`以支持跨域认证。这一改进不仅提升了用户体验,还增强了系统的安全性和可靠性。 ... [详细]
  • 本文介绍如何在 Android 中自定义加载对话框 CustomProgressDialog,包括自定义 View 类和 XML 布局文件的详细步骤。 ... [详细]
author-avatar
夏y儿
这个家伙很懒,什么也没留下!
PHP1.CN | 中国最专业的PHP中文社区 | DevBox开发工具箱 | json解析格式化 |PHP资讯 | PHP教程 | 数据库技术 | 服务器技术 | 前端开发技术 | PHP框架 | 开发工具 | 在线工具
Copyright © 1998 - 2020 PHP1.CN. All Rights Reserved | 京公网安备 11010802041100号 | 京ICP备19059560号-4 | PHP1.CN 第一PHP社区 版权所有