热门标签 | 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(余华),我已经改好了:)

推荐阅读
  • PDO MySQL
    PDOMySQL如果文章有成千上万篇,该怎样保存?数据保存有多种方式,比如单机文件、单机数据库(SQLite)、网络数据库(MySQL、MariaDB)等等。根据项目来选择,做We ... [详细]
  • 本文介绍了在开发Android新闻App时,搭建本地服务器的步骤。通过使用XAMPP软件,可以一键式搭建起开发环境,包括Apache、MySQL、PHP、PERL。在本地服务器上新建数据库和表,并设置相应的属性。最后,给出了创建new表的SQL语句。这个教程适合初学者参考。 ... [详细]
  • 如何实现织梦DedeCms全站伪静态
    本文介绍了如何通过修改织梦DedeCms源代码来实现全站伪静态,以提高管理和SEO效果。全站伪静态可以避免重复URL的问题,同时通过使用mod_rewrite伪静态模块和.htaccess正则表达式,可以更好地适应搜索引擎的需求。文章还提到了一些相关的技术和工具,如Ubuntu、qt编程、tomcat端口、爬虫、php request根目录等。 ... [详细]
  • Iamtryingtomakeaclassthatwillreadatextfileofnamesintoanarray,thenreturnthatarra ... [详细]
  • 本文介绍了数据库的存储结构及其重要性,强调了关系数据库范例中将逻辑存储与物理存储分开的必要性。通过逻辑结构和物理结构的分离,可以实现对物理存储的重新组织和数据库的迁移,而应用程序不会察觉到任何更改。文章还展示了Oracle数据库的逻辑结构和物理结构,并介绍了表空间的概念和作用。 ... [详细]
  • CSS3选择器的使用方法详解,提高Web开发效率和精准度
    本文详细介绍了CSS3新增的选择器方法,包括属性选择器的使用。通过CSS3选择器,可以提高Web开发的效率和精准度,使得查找元素更加方便和快捷。同时,本文还对属性选择器的各种用法进行了详细解释,并给出了相应的代码示例。通过学习本文,读者可以更好地掌握CSS3选择器的使用方法,提升自己的Web开发能力。 ... [详细]
  • [译]技术公司十年经验的职场生涯回顾
    本文是一位在技术公司工作十年的职场人士对自己职业生涯的总结回顾。她的职业规划与众不同,令人深思又有趣。其中涉及到的内容有机器学习、创新创业以及引用了女性主义者在TED演讲中的部分讲义。文章表达了对职业生涯的愿望和希望,认为人类有能力不断改善自己。 ... [详细]
  • springmvc学习笔记(十):控制器业务方法中通过注解实现封装Javabean接收表单提交的数据
    本文介绍了在springmvc学习笔记系列的第十篇中,控制器的业务方法中如何通过注解实现封装Javabean来接收表单提交的数据。同时还讨论了当有多个注册表单且字段完全相同时,如何将其交给同一个控制器处理。 ... [详细]
  • FeatureRequestIsyourfeaturerequestrelatedtoaproblem?Please ... [详细]
  • 本文介绍了iOS数据库Sqlite的SQL语句分类和常见约束关键字。SQL语句分为DDL、DML和DQL三种类型,其中DDL语句用于定义、删除和修改数据表,关键字包括create、drop和alter。常见约束关键字包括if not exists、if exists、primary key、autoincrement、not null和default。此外,还介绍了常见的数据库数据类型,包括integer、text和real。 ... [详细]
  • WhenIusepythontoapplythepymysqlmoduletoaddafieldtoatableinthemysqldatabase,itdo ... [详细]
  • 本文介绍了如何使用jQuery和AJAX来实现动态更新两个div的方法。通过调用PHP文件并返回JSON字符串,可以将不同的文本分别插入到两个div中,从而实现页面的动态更新。 ... [详细]
  • JavaWeb中读取文件资源的路径问题及解决方法
    在JavaWeb开发中,读取文件资源的路径是一个常见的问题。本文介绍了使用绝对路径和相对路径两种方法来解决这个问题,并给出了相应的代码示例。同时,还讨论了使用绝对路径的优缺点,以及如何正确使用相对路径来读取文件。通过本文的学习,读者可以掌握在JavaWeb中正确找到和读取文件资源的方法。 ... [详细]
  • 本文介绍了Python语言程序设计中文件和数据格式化的操作,包括使用np.savetext保存文本文件,对文本文件和二进制文件进行统一的操作步骤,以及使用Numpy模块进行数据可视化编程的指南。同时还提供了一些关于Python的测试题。 ... [详细]
  • AFNetwork框架(零)使用NSURLSession进行网络请求
    本文介绍了AFNetwork框架中使用NSURLSession进行网络请求的方法,包括NSURLSession的配置、请求的创建和执行等步骤。同时还介绍了NSURLSessionDelegate和NSURLSessionConfiguration的相关内容。通过本文可以了解到AFNetwork框架中使用NSURLSession进行网络请求的基本流程和注意事项。 ... [详细]
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社区 版权所有