ftp上传的根目录问题 上传怎么和http扯上关系了,cd / 解决方案 » 免费领取超大流量手机卡,每月29元包185G流量+100分钟通话, 中国电信官方发货 首先访问ftp服务要用ftp协议 使用ftp_put()函数的时候,跟FTP当前目录没有关系,只要设定string remote_file, string local_file, 这两个参数的路径,就可以传了.不存在返回根目录的问题.如果楼主一定要所谓返回根目录,可以使用ftp_chdir()改变当前工作目录 lzkd(浪子快刀) 说得没有错!用ftp_chdir()改变当前工作目录! 我是想用ftp_chdir()改变当前目录问题是ftp_chdir()里边的第二个参数如何写才能返回上一层目录我现在已经在FTP服务器的根目录了,但我想访问这个根目录的上一层目录...请问如何解决呢? 多谢 我现在已经在FTP服务器的根目录了,但我想访问这个根目录的上一层目录...****************这已经超出PHP的范围了,这要你的供应商给你开权限才可以,但100个供应商里面大概100个都不会开给你. 多谢楼上现在是这样的....我的FTP根目录是 : http://192.168.1.222:91/ftp现在我需要把我的文件传到 http://192.168.1.222:91/别的目录里请问怎么传呢? 你是服务器-->服务器的传还是单机-->服务器的传? 突然感觉到...是不是传到FTP以后,还要传到HTTP服务器上?是这个概念吗?还是说,因为ftp服务器的根目录在http服务器上,可以有办法直接传过去呢我都糊涂了......多谢帮忙了...我也好弄清楚这个概念 随便找个搜索引擎,找文件上传+php就可以找一大堆出来.这代码没测试,楼主自己试一下吧.PHP上传文件 秋雨网络屋>学习专区>PHP专区 把截面和实现代码综合到一个单独的文件中,为了实现这个想法,我们通过 在 form中添加一个隐含值指出当前的状态(界面或实现),以便区分对待完成代码如下:<?if(!$UploadAction):?><HTML><HEAD><TITLE>文件上载界面</TITLE></HEAD><BODY><table><tr align="center"><td><form ENCTYPE="multipart/form-data" NAME="SubmitForm" ACTION="upload.php3" METHOD="POST"><input type="hidden" name="MAX_FILE_SIZE" value="1000000"><input type="hidden" name="UploadAction" value="1"></form></td></tr><tr align="center"><td><input NAME="UploadFile" TYPE="file" SIZE="30"></td></tr><tr align="center"><td><input NAME="submit" VALUE="提交" TYPE="submit"></td><td><input NAME="reset" VALUE="重置" TYPE="reset"></td></tr></table></center></BODY></HTML><?else:?><HTML><HEAD><TITLE>文件上载代码</TITLE></HEAD><BODY><? $UploadAction=0; $TimeLimit=60; /*设置超时限制时间 缺省时间为 30秒 设置为0时为不限时 */ set_time_limit($TimeLimit); If(($UploadFile !="none" )&& ($UploadFile ! )) { $UploadPath="AddSlashes(dirname($PATH_TRANSLATED))."\\upload\\"; //上载文件存放路径 $FileName="$UploadPath.$UploadFile_name;" //上载文件名 if($UploadFile_size <1024) //上载文件大小 { $FileSize="(string)$UploadFile_size" . "字节"; }elseif ($UploadFile_size <(1024 * 1024)) { $FileSize="number_format((double)($UploadFile_size" / 1024), 1) . " KB"; } else { $FileSize="number_format((double)($UploadFile_size" / (1024 * 1024)), 1) . " MB"; }if(!file_exists($FileName)) {if(copy($UploadFile,$FileName)){ echo "文件 $UploadFile_name ($FileSize)上载成功!"; } else { echo "文件 $UploadFile_name上载失败!"; } unlink($UploadFile); } else { echo "文件 $UploadFile_name已经存在!"; } } else { echo "你没有选择任何文件上载!"; } set_time_limit(30); //恢复缺省超时设置 ?><BR><A HREF = "upload.php3">返回</A></BODY></HTML><?endif;?> 突然感觉到...是不是传到FTP以后,还要传到HTTP服务器上?是这个概念吗?***********************************一般来讲,正常情况下,供应商给你开出来的空间是指在服务器上给你开了一个限定大小的目录,你可以在这个目录里面进行读,写,删除等操作.所谓FTP服务器,一般的意思是说提供FTP服务的一个机器(你可以这么理解),http服务器(也叫WEB服务器)是指提供WEB服务的机器.但这两个服务器不是说一定得分开两个机器放,正相反,一般情况下,供应商会来个二合一,也就是说,你的FTP服务器和HTTP服务器就是一回事,特别是楼主的情况几乎可以说是100%是二合一.还是说,因为ftp服务器的根目录在http服务器上,可以有办法直接传过去呢我都糊涂了......多谢帮忙了...我也好弄清楚这个概念**************所以楼主把东西传到FTP服务器上了,也相当于上了HTTP服务器,明白了吗? 楼上我的FTP服务器的根目录是设置在WEB服务器的FTP目录啊...他俩不是一个东西...相当于FTP服务器是WEB服务器的一个目录...请问怎么到上一级目录呢?? 楼上..我们现在开发阶段头是这么设置的.我也没辙....而且有的程序需要显示FTP下面的文件列表,我想他是基于这样考虑的吧ftp_put()函数...好像不行吧,怎么能传到FTP根目录以上的目录里呢???很感谢你的回答,希望再次赐教 php里面的ftp_put()函数,能够操作的范围是你的整个php程序所有的目录,当然就包括了ftp目录的上一级目录.今天在家,公司里有一个这样的代码,如果要,明天到公司,测试一下贴给你.应该没问题吧...不过,你们头也够可以的....嗯,不过,有个糊涂上司应该也不错:)楼主加油了 他的意思,只是先这样指定的...好像有个getcwd()可以得到工作目录是吧...这样好像也是一条思路我再试试ftt_put(),很感谢等你明天的代码了,多交流,分是你的了 to : lzkd(浪子快刀) 在等你的代码...多谢了...很急用...最近进度不快...要被骂了...无奈啊... to 楼主,我测试了一下,因为你FTP的权限只有到FTP目录,所以无法使用FTP函数达到你的目的.经过再次试验,如果仅仅是需要将下一级的目录中的东西放到上一级目录中去,可以使用下面的代码,这里的原理是使用了写文件的技巧.建议你的头不要用这么笨的方法来控制FTP,他完全可以开几个不同权限的FTP来达到不显示所有东西的结果.<?php$file1='../ftp/test.php';$file2='../test.php';$file=fopen($file1,"r");$out=fread($file,1048576); //1048576是指文件字节数大小,可再设大fclose($file);$file=fopen($file2,"w");$run=fwrite($file,$out);fclose($file);if($run) echo '写入成功';else echo '写入失败';?>祝楼主好运.匆匆写的代码,很粗糙,因为是在上班,楼主见谅 多谢读写文件还是比较熟悉...还有一个方法...就是用getcwd()得到当前工作目录...然后再用COPY..不过如果ftp服务器更改了的话...就要重新写代码了... copy 不一定可以,如果供应商封了这个函数,就不可以用了:(我也试了COPY,结果在我的机器上可以,我到我租的空间试一下,就不可以.TNND........你可以写一个使用FTP的类嘛....祝楼主好运 不是吧...还有这样的事啊...长见识了..多谢就是说...用文件读写应该是没有问题的,是吧..现在是演示版...我先把功能实现吧...是有FTP的类啊...所有的操作都基于这个类的... 楼主记得结帖:)既然你用了类,那FTP服务器改了的话,你把类的参数改一下不就可以了? 关于php的webservice问题 【急救~~】php error_reporting 或者 var_dump函数使用 出现空白页 网站报错,急急急!!!!!!!!!!! php 有没有和encodeURIComponent同功能的函数呀 求一个正则表达式 关于PHP数据在内存中显示的问题 文件上传中文乱码 问一个关于分页的问题... PHP如何调用百度云PCS的实现在客户端上传文件 php 的error_reporting 不论 什么错误都中断程序执行怎么设置 怎麼把 $_POST[] 中的內容全部輸出來檢查? 困扰我很久的一个问题
只要设定string remote_file, string local_file, 这两个
参数的路径,就可以传了.不存在返回根目录的问题.如果楼主一定要所谓返回根目录,可以使用ftp_chdir()改变
当前工作目录
用ftp_chdir()改变
当前工作目录!
但100个供应商里面大概100个都不会开给你.
还是单机-->服务器的传?
这代码没测试,楼主自己试一下吧.PHP上传文件
秋雨网络屋>学习专区>PHP专区
把截面和实现代码综合到一个单独的文件中,为了实现这个想法,我们通过 在 form中添加一个隐含值指出当前的状态(界面或实现),以便区分对待完成代码如下:
<?
if(!$UploadAction):
?>
<HTML>
<HEAD>
<TITLE>文件上载界面</TITLE>
</HEAD>
<BODY><table>
<tr align="center">
<td><form ENCTYPE="multipart/form-data" NAME="SubmitForm" ACTION="upload.php3" METHOD="POST">
<input type="hidden" name="MAX_FILE_SIZE" value="1000000"><input type="hidden" name="UploadAction" value="1">
</form>
</td></tr>
<tr align="center">
<td><input NAME="UploadFile" TYPE="file" SIZE="30"></td>
</tr>
<tr align="center">
<td><input NAME="submit" VALUE="提交" TYPE="submit"></td>
<td><input NAME="reset" VALUE="重置" TYPE="reset"></td>
</tr>
</table>
</center>
</BODY>
</HTML>
<?
else:
?>
<HTML>
<HEAD>
<TITLE>文件上载代码</TITLE>
</HEAD>
<BODY>
<?
$UploadAction=0; $TimeLimit=60; /*设置超时限制时间 缺省时间为 30秒 设置为0时为不限时 */ set_time_limit($TimeLimit); If(($UploadFile !="none" )&& ($UploadFile ! ))
{
$UploadPath="AddSlashes(dirname($PATH_TRANSLATED))."\\upload\\"; //上载文件存放路径 $FileName="$UploadPath.$UploadFile_name;" //上载文件名 if($UploadFile_size <1024) //上载文件大小
{ $FileSize="(string)$UploadFile_size" . "字节"; }
elseif ($UploadFile_size <(1024 * 1024))
{
$FileSize="number_format((double)($UploadFile_size" / 1024), 1) . " KB";
} else
{
$FileSize="number_format((double)($UploadFile_size" / (1024 * 1024)), 1) . " MB";
}if(!file_exists($FileName))
{
if(copy($UploadFile,$FileName))
{ echo "文件 $UploadFile_name ($FileSize)上载成功!"; }
else
{ echo "文件 $UploadFile_name上载失败!"; } unlink($UploadFile);
}
else
{ echo "文件 $UploadFile_name已经存在!"; }
}
else
{ echo "你没有选择任何文件上载!"; } set_time_limit(30); //恢复缺省超时设置 ?><BR><A HREF = "upload.php3">返回</A></BODY>
</HTML><?
endif;
?>
***********************************
一般来讲,正常情况下,供应商给你开出来的空间是指在服务器上给你开了一个
限定大小的目录,你可以在这个目录里面进行读,写,删除等操作.所谓FTP服务器,一般的意思是说提供FTP服务的一个机器(你可以这么理解),
http服务器(也叫WEB服务器)是指提供WEB服务的机器.
但这两个服务器不是说一定得分开两个机器放,正相反,一般情况下,供应商
会来个二合一,也就是说,你的FTP服务器和HTTP服务器就是一回事,特别是
楼主的情况几乎可以说是100%是二合一.
还是说,因为ftp服务器的根目录在http服务器上,可以有办法直接传过去呢我都糊涂了......多谢帮忙了...我也好弄清楚这个概念
**************所以楼主把东西传到FTP服务器上了,也相当于上了HTTP服务器,明白了吗?
就包括了ftp目录的上一级目录.今天在家,公司里有一个这样的代码,如果要,明天
到公司,测试一下贴给你.应该没问题吧...不过,你们头也够可以的....嗯,不过,有个糊涂上司应该也不错:)楼主加油了
lzkd(浪子快刀) 在等你的代码...多谢了...很急用...最近进度不快...要被骂了...无奈啊...
的目的.经过再次试验,如果仅仅是需要将下一级的目录中的东西放到上一级目录中去,
可以使用下面的代码,这里的原理是使用了写文件的技巧.建议你的头不要用这么笨的方法来控制FTP,他完全可以开几个不同权限的FTP来达到
不显示所有东西的结果.<?php
$file1='../ftp/test.php';
$file2='../test.php';
$file=fopen($file1,"r");
$out=fread($file,1048576); //1048576是指文件字节数大小,可再设大
fclose($file);
$file=fopen($file2,"w");
$run=fwrite($file,$out);
fclose($file);
if($run)
echo '写入成功';
else
echo '写入失败';
?>
祝楼主好运.
匆匆写的代码,很粗糙,因为是在上班,楼主见谅
就不可以.TNND........你可以写一个使用FTP的类嘛....祝楼主好运