WWWForm 网页表单
Helper class to generate form data to post to web servers using the WWW class.
辅助类。用来生成表单数据,使用WWW类传递到web服务器。
// Grab a screen shot and upload it to a CGI script.
//获取一个截屏并上传到CGI脚本
// The CGI script must be able to hande form uploads.
//该CGI脚本必须能处理表单上传
var screenShotURL= "http://www.my-server.com/cgi-bin/screenshot.pl";
// Take a screen shot immediately
//立即截屏
function Start() {
UploadPNG();
}
function UploadPNG() {
// We should only read the screen after all rendering is complete
//我们应该只在所有渲染完成后读取屏幕
yield WaitForEndOfFrame();
// Create a texture the size of the screen, RGB24 format
//创建屏幕大小的纹理,RGB24格式
var width = Screen.width;
var height = Screen.height;
var tex = new Texture2D( width, height, TextureFormat.RGB24, false );
// Read screen contents into the texture
//读取屏幕内存到纹理
tex.ReadPixels( Rect(0, 0, width, height), 0, 0 );
tex.Apply();
// Encode texture into PNG
//编码纹理为PNG
var bytes = tex.EncodeToPNG();
Destroy( tex );
// Create a Web Form
//创建一个Web表单
var form = new WWWForm();
form.AddField("frameCount", Time.frameCount.ToString());
form.AddBinaryData("fileUpload", bytes, "screenShot.png", "image/png");
// Upload to a cgi script
//上传到一个CGI脚本
var w = WWW(screenShotURL, form);
yield w;
if (w.error != null)
print(w.error);
else
print("Finished Uploading Screenshot");
}
Here is a sample script that retrieves the high scores stored in a table in an SQL database.
这里是一个简单的脚本检索储存在SQL数据库中的高分表。
// This example assumes that the user has entered his name into a
// variable called name and that score contains the user's current
// score.
//这个例子假设玩家已经输入了他的名称到一个name变量中并且score包含玩家的当前分数
var highscore_url = "http://www.my-site.com/highscores.pl";
var playName = "Player 1";
var score = -1;
function Start() {
// Create a form object for sending high score data to the server
// 创建一个表单来发送高分数据到服务器
var form = new WWWForm();
// Assuming the perl script manages high scores for different games
// 假设perl脚本为不同的游戏管理高分
form.AddField( "game", "MyGameName" );
// The name of the player submitting the scores
// 玩家提交的名称
form.AddField( "playerName", playName );
// The score
// 分数
form.AddField( "score", score );
// Create a download object
//创建一个下载对象
var download = new WWW( highscore_url, form );
// Wait until the download is done
//等待直到下载完成
yield download;
if(download.error) {
print( "Error downloading: " + download.error );
return;
} else {
// show the highscores
// 显示高分
Debug.Log(download.text);
}
}
Here is a sample Perl script that processes the high scores stored in a table in an SQL database.
这里是一个简单的Perl脚本用处理储存在SQL数据库中的高分表。
#!/usr/bin/perl
# The SQL database needs to have a table called highscores
# that looks something like this:
#
# CREATE TABLE highscores (
# game varchar(255) NOT NULL,
# player varchar(255) NOT NULL,
# score integer NOT NULL
# );
#
use strict;
use CGI;
use DBI;
# Read form data etc.
my $cgi = new CGI;
# The results from the high score script will be in plain text
print $cgi->header("text/plain");
my $game = $cgi->param('game');
my $playerName = $cgi->param('playerName');
my $score = $cgi->param('score');
exit 0 unless $game; # This parameter is required
# Connect to a database
my $dbh = DBI->connect( 'DBI:mysql:databasename', 'username', 'password' )
|| die "Could not connect to database: $DBI::errstr";
# Insert the player score if there are any
if( $playerName && $score) {
$dbh->do( "insert into highscores (game, player, score) values(?,?,?)",
undef, $game, $playerName, $score );
}
# Fetch the high scores
my $sth = $dbh->prepare(
'SELECT player, score FROM highscores WHERE game=? ORDER BY score desc LIMIT 10' );
$sth->execute($game);
while (my $r = $sth->fetchrow_arrayref) {
print join(':',@$r),"\n"
}
Variables变量
-
(Read Only) Returns the correct request headers for posting the form using the WWW class.
(只读)为使用WWW类传递的表单返回一个正确的请求头。 -
(Read Only) The raw data to pass as the POST request body when sending the form.
(只读)在发送表单的时,原始数据作为POST请求发送。
Constructors构造器
-
Creates an empty WWWForm object.
创建一个空的网页表单对象。
Functions函数
-
Add a simple field to the form.
添加一个简单的域到表单。 -
Add binary data to the form.
添加二进制数据到表单。
最后修改:2011年3月19日 Saturday 17:18