Perl CGI中的文件上传
Perl是一种通用的编程语言,专门为文本操作而设计,目前被用于各种任务,包括系统管理、网络开发、网络编程、GUI开发和其他更多领域。
在Perl中, CGI (Common Gateway Interface)是一种通过网络请求执行脚本的协议,换句话说,我们可以说它是一套规则和标准,定义了自定义脚本和网络服务器之间的信息交换方式。
CGI架构图
CGI如何上传文件
在Web服务器端,软件(在我们的例子中,是一个CGI脚本)解释从浏览器发送的表单数据,并提取文件名和内容,以及其他表单字段。通常,该文件会被保存到服务器上的一个目录。
注意 :以下是建立一个CGI上传脚本的必要条件。
- 访问一个与CGI兼容的Web服务器
- 网络服务器上必须有一份Perl的拷贝在运行
- 你的网络服务器必须包含Perl的CGI库,CGI.pm
在网络服务器上上传文件是通过使用一个文件上传表格来完成的。这种文件上传表格是在任何可用的文本编辑器上创建的,该表格必须以.htm或.html为扩展名保存。创建一个文件上传表格包括以下步骤。
第1步:创建表单元素
首先,需要创建一个 “表单 “元素
<form action="/cgi-bin/upload.cgi" method="post" enctype="multipart/form-data">
注意: 在上述代码中,multipart/form-data是用于文件上传的编码类型,而file upload.cgi 则用于存储使用此表单发布的数据。
第2步:创建表单字段
其次,我们需要为表单提供字段。这些字段用于指导用户在表单中需要上传的文件。
例如,在这里,我们将为用户提供一个上传字段,用于上传他们的照片和提供他们的电子邮件。
<p>Upload Photo: <input type="file" name="photo" /></p>
<p>Email: <input type="text" name="email_address" /></p>
第3步:提供提交表单按钮
第3步是让用户根据表单中给出的字段提交所有上传的文件。为此,需要一个提交按钮,以便用户可以将表单发送到网络服务器。
<!--using button for sending the form to web server-->
<p><input type="submit" name="Submit" value="Submit Form" /></p>
例子:显示CGI中文件上传工作的样本表格
<!DOCTYPE html>
<html lang="en">
<head>
<meta http-equiv = "Content-Type" content = "text/html; charset=utf-8" />
<title>File Upload</title>
</head>
<body style = "text-align:center;">
<h1 style = "color:green;"> GeeksForGeeks </h1>
<form action = "/cgi-bin/upload.cgi"
method = "post" enctype = "multipart/form-data">
<p>Upload Photo: <input type = "file" name = "photo" /></p>
<p>Email: <input type = "text"
placeholder = "e.g. GFG@gmail.com"
name = "email_address" /></p>
<p><input type = "submit" name = "Submit" value = "Submit Form" /></p>
</form>
</body>
</html>
输出 :