600分的问题!请问,如何将图片在网页上上传,然后通过dephi的action获取信息!!!时间紧迫,请高手赐教!!!(200分)

  • 主题发起人 主题发起人 babysheep
  • 开始时间 开始时间
B

babysheep

Unregistered / Unconfirmed
GUEST, unregistred user!
是这样的,我做的是题库系统,有一个录入题目的页面,其中有录入题目图片,我的目的是把
图片复制到服务器端的一个自建文件夹中,然后通过数据库来指向文件夹的路径。我用html已经
获取了图片的路径,但是不知道该如何把它通过delphi的action来存入服务器端。请高手赐教。
我的应用程序端用的是web module ,服务器端用的是corba module,服务器用的是sql server.
还有一个问题,不知道是把图片直接存取数据库快,还是通过指向路径存取的速度更快,请高手解释一下。
欢迎来email:babysheep@sina.com
oicq:1028517(推荐方式)
这道题对高手来说不难,对我这种菜鸟来说,难!
 
http支持流文件的传输。
指向路径存取的速度更快
 
一般为了减轻服务器端的负荷,把图片存入目录中为益,然后在数据库中
存入图片的文件名,在ASP中一般用组件做,如 FileUp等。

Delphi中用一个简单协议,在Delphi根目 Demos/FastNet中具体的例子,
好象是Strm目录下。不妨试一下。
 
那个例子我去看了,嗯,有点收获,不过,我觉得我做的和那个例子还是有很大差别的,首先,
我的form是html页面,而在中间是通过在web module建立action来处理html的请求,比如说
我在html写了post=“a”,则我会在web module建立一个/a的action来处理这个页面请求。
在我做的实际过程中,我利用html取得了图片路径,在action中提取html页面的文本框中的
路径文本,然后,我根据得到的路径把图片复制拷贝到服务端的一个文件夹中,之后还要改路径再
存入数据库中。不知道在action里面是否可以写控件,呵呵。我想知道的是,delphi取得
图片路径之后,怎么复制拷贝到服务器端。谢谢你们提供的信息
 
好象使用PUT方法吧
 
put?在哪里用?
 
ACTION里面一种提交METHOD,当页面将请求提交上来后,你就可以用REQUEST.READCLIENT
来读取内容,大致应该是这样的拉,我对文件IO不太熟悉,只能说给你听这些了。
 
要将文件上传到服务器上,必须在html文件中指定Enctype
示例:
<html>
<head>
</head>
<body>
<form method="post" enctype="multipart/form-data" action="http://localhost/cgi/test.exe">
description : <input name="Description"><br>
filename : <input type="file" name="ImageFile"><br>
<input type=submit>
</form>
</body>
</html>
而服务器端Action读到的Request,是一个有编码的字节流,
Delphi对这种格式没有提供处理,你必须自己去分析。
示例:
-----------------------------7d1423806dc
Content-Disposition: form-data; name="Description"

Sici
-----------------------------7d1423806dc
Content-Disposition: form-data; name="ImageFile"; filename="E:/My Document/Ci.txt"
Content-Type: text/plain

苏穆遮

见时难 分别易
又是经年 客思无从说
人在天涯焦思被
一缕幽思 脑际长相累

梦无凭 君晓未
万水千山 隔断相逢地
最是人生情味切
人面桃花 何日溪桥会

-----------------------------7d1423806dc--

下面我帮你简单分析一下
-----------------------------7d1423806dc 是系统产生的分隔行,每次都不一样,但格式是一样的。
分隔行加两个减号,表示数据到此全部结束。

紧接着分隔行开始的是表单域属性,以行为单位,直到出现一个空行为止。
从空行的下一行起,是这个表单域的内容,直到下一个分隔行止。
为了便于分析,我上传了一个文本文件,对于二进制文件也是一样的。

上面的诗词,是彭须源先生写的,临时借用一下,深表歉意。
 
jojo讲的不错,我们这儿已经有一高手解决了此问题,就是用此方法的
 
这是以前(1998)讨论的问题。
http://www.delphibbs.com/delphibbs/dispq.asp?lid=013613

其实我认为现在完全可以使用一些综合的方法,如果你的 www 服务器 是IIS 可
以结合使用ASP ,如果是 apache 可以结合使用 php, 他们都可以非常简单地解
决此类问题。
 
其实用D5还可以用Activex 也是可以实现的。不过在浏览器中显示可能麻烦一点
 
jojo说的可行,但文件大了就难了。
 
多人接受答案了。
 

Similar threads

S
回复
0
查看
3K
SUNSTONE的Delphi笔记
S
S
回复
0
查看
2K
SUNSTONE的Delphi笔记
S
D
回复
0
查看
1K
DelphiTeacher的专栏
D
D
回复
0
查看
872
DelphiTeacher的专栏
D
D
回复
0
查看
1K
DelphiTeacher的专栏
D
后退
顶部