服务端上传临时文件|ftp上传文件失败长传文件大小为零字节!

|

① 怎么可以把我的电脑做服务器,然后然后人家可以访问我的电脑里的网站

必须是专线才可以,如果局内网不可以~~ asp架设首先要有IIS xp 和2000都有带 98你自己下 就是Internet 信息服务 安装完毕后你可以通过 计算机-网站-默认网站这几个步骤 然后点鼠标右键 新建虚拟目录 建立网站 如果还看不见就点右键 属性-配置 看看扩展名里有没有asp 如果没有添加一下 浏览C:\WINDOWS\System32\inetsrv\asp.dll 最后点你的网站目录 右键浏览就可以看见 php架设 第0步:\>软件、环境清单 本文侧重于Windows平台的Apache版本,而且仅用于调试学习用! 原贴地址:http://wjhen.3322.org/ipb/index.php?showtopic=32 ★软件环境: OS:Win2000/WinXP/Win2003 ★软件清单: 1.Apache Ver:1.3.33 (建议使用1.3.x版本,兼容性比较好) 下载地址:http://httpd.apache.org/download.cgi 2.ActivePerl Ver:5.6.1(建议使用5.6.1版本,兼容性比较好) 下载地址:http://www.activeperl.com/Procts/Downloa…x?id=ActivePerl 3.PHP Ver:4.3.10 (建议使用4.3.10版本,兼容性和安全性比较好) 下载地址:http://www.php.net/downloads.php 4.Windows Installer Ver:3.0(可选,如果软件无法安装请先安装,适用于Win2KSP3/Win2kSP4/Win2K3/WinXP/WinXPSP1) 下载地址:http://www.microsoft.com/downloads/details…14-a956122e08e8 [quote]第1步:\>开始安装Apache 下载完apache_1.3.33-win32-x86-no_src.exe,运行之,出现如图欢迎画面。[/quote] quote]第2步:\>Apache安装许可协议 当然选择我同意了。[/quote] [quote]第3步:\>Apache的一些说明 直接下一步吧。[/quote] [quote]第4步:\>填写主机参数 Network Domain:域名(填写你的主机的域名,如果单机调试可以任意填) Server Name:主机名(填写主机所在域的主机名,如果单机调试可以任意填) Administrator's Email Address:管理员Email信箱 Run as a service for All Users:将Apache服务器安装成系统服务(随系统启动而系统) Run When started manually,only for me:每次手工启动Apache服务器 如果不知道该怎么填,可以就按图中的那些参数填写,最好将Apache安装成系统服务。[/quote] [quote]第5步:\>选择自定义安装方式 请在这里尽量选择自定义安装方式,可以方便以后的调试。[/quote] [quote]第6步:\>选择Apache安装路径 请选择安装目录,这里尽量将安装路径选择为C:\,其实是安装到C:\Apache目录,因为这样路径简单化,以后写配置文件会省力好多。[/quote] [quote]第7步:\>复制Apache程序文件 请耐心等待一下。[/quote] [quote]第8步:\>Apache安装结束 请点击Finish完成安装。[/quote] [quote]第9步:\>Apache服务正处于自动运行状态 现在可以到管理工具的服务中查看,此时的Apache服务已经处于自动运行状态。[/quote] [quote]第10步:\>修改httpd.conf文件 httpd.conf文件路径:C:\Apache\conf\httpd.conf 注意:httpd.conf文件每行最前如果有#,表示这行注释,要去掉#才能使该行启用。 修改BindAddress参数 CODEBindAddress * 这个参数是Apache服务IP的设置,设置为*表示将Apache服务端口绑定任意主机可用IP上,可以根据需要绑定IP,单机调试可以绑定到*。[/quote] [quote]第11步:\>修改httpd.conf文件 Port参数:Apache的服务端口(HTTP服务默认为80,也可以修改为需要的端口) CODEPort 80 Server Admin参数:管理员信箱(安装的时候填写会在这里反映出来,可以按需要修改) CODEServerAdmin [email protected] ServerName参数:主机名(安装的时候填写会在这里反映出来,可以按需要修改) CODEServerName yourdomain.3322.org 这几个参数对单机调试没有影响,其作用是在Apache出现404和500错误的时候提示在页面上。[/quote] [quote]第12步:\>Apache已经正常工作啦 修改完httpd.conf文件的参数需要重新启动一下Apache服务才能使修改的参数生效,可以到服务中Restart一下Apache服务,用IE访问一下,成功啦。[/quote] [quote]第13步:\>安装CGI支持ActivePerl 执行下载文件ActivePerl-5.6.1.638-MSWin32-x86.msi,出现如图欢迎画面。[/quote] [quote]第14步:\>ActivePerl安装许可协议 当然选择我同意了。[/quote] [quote]第15步:\>选择ActivePerl的安装路径 请务必将路径设置为C:\usr,这是Perl运行所指定的特殊路径。[/quote] [quote]第16步:\>选择PPM3设置 Enable PPM3 to send profile info to参数:是否允许PPM3将个人配置发送出去。 如果需要使用PPM3就允许吧。[/quote] [quote]第17步:\>ActivePerl一些参数设置 Add Perl to the PATH environment参数:是否将Perl添加到路径的环境变量中去。 Create Perl file extension参数:是否建立Perl文件的关联。 一般都可以设置为允许。[/quote] [quote]第18步:\>开始复制ActivePerl文件 复制ActivePerl的文件会比较慢一点,请耐心等待。[/quote] [quote]第19步:\>ActivePerl安装完毕 请点击Finish完成安装。[/quote] [quote]第20步:\>修改httpd.conf文件使Apache支持CGI httpd.conf文件路径:C:\Apache\conf\httpd.conf 注意:httpd.conf文件每行最前如果有#,表示这行注释,要去掉#才能使该行启用。 修改cgi-bin目录的属性AllowOverride参数 查找ScriptAlias /cgi-bin/ "C:/Apache/cgi-bin/"字符串,如图,修改AllowOverride为all <!– CETagParser –><br><!– /CETagParser –> AllowOverride all <!– CETagParser –><br><!– /CETagParser –> 修改这个参数的用途是使C:\Apache\cgi-bin目录有执行cgi的权限。[/quote] [quote]第21步:\>修改httpd.conf文件使Apache支持CGI 修改AddHandler cgi-script参数 查找AddHandler cgi-script字符串,如图,去掉此行前面的#注释,添加.pl类型。 <!– CETagParser –><br><!– /CETagParser –> AddHandler cgi-script .cgi .pl <!– CETagParser –><br><!– /CETagParser –> 这个参数用途是添加cgi脚本类型。[/quote] [quote]第22步:\>CGI配置完成 Restart系统中的Apache服务,使刚才配置生效。[/quote] [quote]第23步:\>CGI成功运行 将附件中的CGI探针解到C:\Apache\cgi-bin目录,用IE访问以下URL。 <!– CETagParser –><br><!– /CETagParser –> http://127.0.0.1/cgi-bin/env.cgi <!– CETagParser –><br><!– /CETagParser –> 可以看到,cgi已经可以正常运行了。[/quote] [quote]第24步:\>安装PHP支持 将下载的php-4.3.10-Win32.zip解压到C:\,如图。[/quote] [quote]第25步:\>安装PHP支持 将目录php-4.3.10-Win32修改为php,如图。[/quote] quote]第26步:\>安装PHP支持 进入C:\php目录,选择php.ini-dist文件,复制一个副本出来,如图。[/quote] [quote]第27步:\>安装PHP支持 将复件 php.ini-dist文件改名为php.ini[/quote] [quote]第28步:\>修改PHP配置文件php.ini php.ini文件路径:C:\php\php.ini 注意:php.ini文件每行最前如果有;,表示这行注释,要去掉;才能使该行启用。 max_execution_time参数:php最大执行时间(如果某些php执行需要很久,请适量加大此参数的值)。 max_input_time参数:php处理提交参数最大时间(一般保持默认,不用修改)。 memory_limit参数:php消耗内存限制 (一般保持默认,不用修改)。[/quote] [quote]第29步:\>修改PHP配置文件php.ini register_globals参数:是否打开php全局变量(某些程序需要,可以设置为On)。[/quote] [quote]第30步:\>修改PHP配置文件php.ini extension_dir参数:设置php扩展库目录,因为php安装在c:\,所以这了务必设置为 <!– CETagParser –><br><!– /CETagParser –> extension_dir = "c:/php/extensions/" <!– CETagParser –><br><!– /CETagParser –>[/quote] [quote]第31步:\>修改PHP配置文件php.ini file_uploads参数:是否允许文件上传(一般设置为On即为允许)。 upload_tmp_dir参数:文件上传临时目录(一般可设置为windows的临时目录)。 upload_max_filesize参数:文件上传容量最大限制 (根据需要修改,注意单位)。[/quote] [quote]第32步:\>修改PHP配置文件php.ini 打开GD模块:去掉extension=php_gd2.dll前面的;即可,如果需要打开其他模块或添加其他模块,也可以在此添加。[/quote] [quote]第33步:\>修改PHP配置文件php.ini session.save_path参数:设置php session文件临时目录(一般可设置为windows的临时目录)。 <!– CETagParser –><br><!– /CETagParser –> session.save_path = c:/windows/temp/ <!– CETagParser –><br><!– /CETagParser –>[/quote] [quote]第34步:\>修改httpd.conf文件使Apache支持PHP httpd.conf文件路径:C:\Apache\conf\httpd.conf 找到httpd.conf文件末尾,添加如下参数行 <!– CETagParser –><br><!– /CETagParser –> Alias /php-bin/ "c:/Apache/php-bin/" ScriptAlias /php/ "c:/php/" AddType application/x-httpd-php .php .php3 Action application/x-httpd-php "/php/php.exe" <!– CETagParser –><br><!– /CETagParser –> Alias /php-bin/ "c:/Apache/php-bin/"参数:对c:\php-bin目录做php-bin的影射。 ScriptAlias /php/ "c:/php/"参数:对c:\php目录做php脚本影射。 AddType application/x-httpd-php .php .php3参数:添加php/php3的脚本类型。 Action application/x-httpd-php "/php/php.exe"参数:设置php/php3的脚本的解析动作。 修改完毕保存httpd.conf,退出即可。[/quote] [quote]第35步:\>PHP配置完成 Restart系统中的Apache服务,使刚才配置生效。[/quote] 第36步:\>PHP成功运行 将附件中的PHP探针解到C:\Apache\php-bin目录,用IE访问以下URL。 <!– CETagParser –><br><!– /CETagParser –> http://127.0.0.1/php-bin/env.php <!– CETagParser –><br><!– /CETagParser –> 可以看到,php已经可以正常运行了。

② php文件上传时,关于临时目录的问题,我想知道的是,默认路径是C:\WINDOWS\temp,但是后面怎么会多出

通常,从安全性考虑,上传文件的文件保存在一个临时目录里面,并且取了一个随机的字符串进行命名,由于临时目录的特性,你需要在这个文件被系统删除之前,及时将这个文件转存到你指定的位置。如果想看文件的原名称,可以用 $_FILES['myFile']['name']。 以下是 $_FILES 全局数组的详细内容:$_FILES['myFile']['name'] 客户端文件的原名称。 $_FILES['myFile']['type'] 文件的 MIME 类型,需要浏览器提供该信息的支持,例如"image/gif"。 $_FILES['myFile']['size'] 已上传文件的大小,单位为字节。 $_FILES['myFile']['tmp_name'] 文件被上传后在服务端储存的临时文件名,一般是系统默认。可以在php.ini的upload_tmp_dir 指定,但 用 putenv() 函数设置是不起作用的。 $_FILES['myFile']['error'] 和该文件上传相关的错误代码。['error'] 是在 PHP 4.2.0 版本中增加的。下面是它的说明:(它们在PHP3.0以后成了常量)

③ ftp上传文件失败,长传文件大小为零字节!

上传时出现同名零字节的文件,应该是服务器端建立了一个临时文件准备专接收数据,但是出现错误,就无属法上传了。此时FTP客户端和服务器建立的tcp网络连接还在,服务器端仍然在等待客户端上传数据,在等待一段时间收不到数据以后,服务器端才会关闭这个链接,同时删掉临时文件,在这段时间内你用什么FTP程序上传都会出错,因为服务器端的临时文件还在,无法新建同名文件,服务器还在等你写入上一次的数据到最初的临时文件。过了一段时间后,服务器等不到你的数据,关闭了最初的有错误的连接,删掉了临时文件,你再上传,就没问题了,就可以上传成功,因为可以再次新建一个临时文件了。这就是你看到的这个错误的原理。只要以后你上传没出错,应该不会再出现问题,如果还出问题,就建议联系FTP服务器的管理员协助你处理。由于不同FTP服务器处理方式不同,我给出的只是一种可能的原理,并不一定就是你这个错误的实际情况,如果有其他新的情况可以继续追问,帮你继续分析。

④ 关于php实现文件上传

php的文件上传机制是把用户上传的文件保存在php.ini的upload_tmp_dir定义的临时目录(默认是系统的临时目录,如:/tmp)里的一个类似phpxXuoXG的随机临时文件,程序执行结束,该临时文件也被删除。PHP给上传的文件定义了四个变量:(如form变量名是file,而且register_globals打开) $file #就是保存到服务器端的临时文件(如/tmp/phpxXuoXG ) $file_size #上传文件的大小 $file_name #上传文件的原始名称 $file_type #上传文件的类型 推荐使用: $_FILES['file']['tmp_name'] $_FILES['file']['size'] $_FILES['file']['name'] $_FILES['file']['type']


赞 (0)