找回密码
 立即注册
搜索
热搜: 活动 交友 discuz
查看: 46|回复: 6

发个简单上穿类程序!可当图床,或文件存放!

[复制链接]

26

主题

202

回帖

530

积分

高级会员

积分
530
发表于 2012-5-3 12:46:52 | 显示全部楼层 |阅读模式
演示地址:http://freeup.1otc.com/[ol]
  • 'freeup.1otc.com',//ftpip
  •                         'username' => 'freexxx',       //ftp用户名
  •                         'password' => 'xxxxx',        //ftp密码
  •                         'port' => 21
  •                                 );
  • if (@is_uploaded_file($_FILES['upfile']['tmp_name'])){
  • $upfile=$_FILES["upfile"];
  • $name = $upfile["name"];
  • $type = $upfile["type"];
  • $size = $upfile["size"];
  • $tmp_name = $upfile["tmp_name"];
  • $error = $upfile["error"];
  • move_uploaded_file($tmp_name,$name);
  • $ftp = new Ftp();
  • $folder=date('Ymd',time());
  • $filename=date('His',time())."_".$name;
  • $ftp->connect($config);
  • $ftp->chgdir('freeup.1otc.com');
  • $ftp->mkdir($folder);
  • $ftp->chgdir($folder);
  • $ftp->upload($name,$filename);
  • $ftp->chgdir('../');
  • $html.='
  •   
  •    文件上传
  •   
  •   上传文件:
  •   
  •   
  • 你的文件的路径[url=]http://freeup.1otc.com/'.$folder.'/'.$filename.'[/url]
    '
  • ;
  • $list=$ftp->filelist();
  • //print_r($list);
  • for($i = count($list)-1; $i >-1; $i--){
  • $html.="
  • [url=]".$list[$i]."[/url]";
  • }
  • info_write('index.htm',$html);
  • $ftp->upload('index.htm','index.htm');
  • unlink($name);
  • unlink('index.htm');
  • echo'';
  • }
  • ?>
  • [/ol]复制代码
  • 回复

    使用道具 举报

    88

    主题

    1195

    回帖

    2690

    积分

    金牌会员

    积分
    2690
    发表于 2012-5-3 12:47:29 | 显示全部楼层
    timed out.
    回复

    使用道具 举报

    26

    主题

    202

    回帖

    530

    积分

    高级会员

    积分
    530
     楼主| 发表于 2012-5-3 12:47:29 | 显示全部楼层
    [ol]
    1. '','username'=>'','password'=>'','port'=>''...);
    2. [*]         */
    3. [*]        public function __construct($config = array()) {
    4. [*]                if(count($config) > 0) {
    5. [*]                        $this->_init($config);
    6. [*]                }
    7. [*]        }
    8. [*]        
    9. [*]        /**
    10. [*]         * FTP连接
    11. [*]         *
    12. [*]         * @access         public
    13. [*]         * @param         array         配置数组
    14. [*]         * @return        boolean
    15. [*]         */
    16. [*]        public function connect($config = array()) {
    17. [*]                if(count($config) > 0) {
    18. [*]                        $this->_init($config);
    19. [*]                }
    20. [*]               
    21. [*]                if(FALSE === ($this->conn_id = @ftp_connect($this->hostname,$this->port))) {
    22. [*]                        if($this->debug === TRUE) {
    23. [*]                                $this->_error("ftp_unable_to_connect");
    24. [*]                        }
    25. [*]                        return FALSE;
    26. [*]                }
    27. [*]               
    28. [*]                if( ! $this->_login()) {
    29. [*]                        if($this->debug === TRUE) {
    30. [*]                                $this->_error("ftp_unable_to_login");
    31. [*]                        }
    32. [*]                        return FALSE;
    33. [*]                }
    34. [*]               
    35. [*]                if($this->passive === TRUE) {
    36. [*]                        ftp_pasv($this->conn_id, TRUE);
    37. [*]                }
    38. [*]               
    39. [*]                return TRUE;
    40. [*]        }
    41. [*]
    42. [*]        
    43. [*]        /**
    44. [*]         * 目录改变
    45. [*]         *
    46. [*]         * @access         public
    47. [*]         * @param         string         目录标识(ftp)
    48. [*]         * @param        boolean        
    49. [*]         * @return        boolean
    50. [*]         */
    51. [*]        public function chgdir($path = '', $supress_debug = FALSE) {
    52. [*]                if($path == '' OR ! $this->_isconn()) {
    53. [*]                        return FALSE;
    54. [*]                }
    55. [*]               
    56. [*]                $result = @ftp_chdir($this->conn_id, $path);
    57. [*]               
    58. [*]                if($result === FALSE) {
    59. [*]                        if($this->debug === TRUE AND $supress_debug == FALSE) {
    60. [*]                                $this->_error("ftp_unable_to_chgdir:dir[".$path."]");
    61. [*]                        }
    62. [*]                        return FALSE;
    63. [*]                }
    64. [*]               
    65. [*]                return TRUE;
    66. [*]        }
    67. [*]        
    68. [*]        /**
    69. [*]         * 目录生成
    70. [*]         *
    71. [*]         * @access         public
    72. [*]         * @param         string         目录标识(ftp)
    73. [*]         * @param        int          文件权限列表        
    74. [*]         * @return        boolean
    75. [*]         */
    76. [*]        public function mkdir($path = '', $permissions = NULL) {
    77. [*]                if($path == '' OR ! $this->_isconn()) {
    78. [*]                        return FALSE;
    79. [*]                }
    80. [*]               
    81. [*]                $result = @ftp_mkdir($this->conn_id, $path);
    82. [*]               
    83. [*]                if($result === FALSE) {
    84. [*]                        if($this->debug === TRUE) {
    85. [*]                                $this->_error("ftp_unable_to_mkdir:dir[".$path."]");
    86. [*]                        }
    87. [*]                        return FALSE;
    88. [*]                }
    89. [*]               
    90. [*]                if( ! is_null($permissions)) {
    91. [*]                        $this->chmod($path,(int)$permissions);
    92. [*]                }
    93. [*]               
    94. [*]                return TRUE;
    95. [*]        }
    96. [*]        
    97. [*]        /**
    98. [*]         * 上传
    99. [*]         *
    100. [*]         * @access         public
    101. [*]         * @param         string         本地目录标识
    102. [*]         * @param        string        远程目录标识(ftp)
    103. [*]         * @param        string        上传模式 auto || ascii
    104. [*]         * @param        int                上传后的文件权限列表        
    105. [*]         * @return        boolean
    106. [*]         */
    107. [*]        public function upload($localpath, $remotepath, $mode = 'auto', $permissions = NULL) {
    108. [*]                if( ! $this->_isconn()) {
    109. [*]                        return FALSE;
    110. [*]                }
    111. [*]               
    112. [*]                if( ! file_exists($localpath)) {
    113. [*]                        if($this->debug === TRUE) {
    114. [*]                                $this->_error("ftp_no_source_file:".$localpath);
    115. [*]                        }
    116. [*]                        return FALSE;
    117. [*]                }
    118. [*]               
    119. [*]                if($mode == 'auto') {
    120. [*]                        $ext = $this->_getext($localpath);
    121. [*]                        $mode = $this->_settype($ext);
    122. [*]                }
    123. [*]               
    124. [*]                $mode = ($mode == 'ascii') ? FTP_ASCII : FTP_BINARY;
    125. [*]               
    126. [*]                $result = @ftp_put($this->conn_id, $remotepath, $localpath, $mode);
    127. [*]               
    128. [*]                if($result === FALSE) {
    129. [*]                        if($this->debug === TRUE) {
    130. [*]                                $this->_error("ftp_unable_to_upload:localpath[".$localpath."]/remotepath[".$remotepath."]");
    131. [*]                        }
    132. [*]                        return FALSE;
    133. [*]                }
    134. [*]               
    135. [*]                if( ! is_null($permissions)) {
    136. [*]                        $this->chmod($remotepath,(int)$permissions);
    137. [*]                }
    138. [*]               
    139. [*]                return TRUE;
    140. [*]        }
    141. [*]        
    142. [*]        /**
    143. [*]         * 下载
    144. [*]         *
    145. [*]         * @access         public
    146. [*]         * @param         string         远程目录标识(ftp)
    147. [*]         * @param        string        本地目录标识
    148. [*]         * @param        string        下载模式 auto || ascii        
    149. [*]         * @return        boolean
    150. [*]         */
    151. [*]        public function download($remotepath, $localpath, $mode = 'auto') {
    152. [*]                if( ! $this->_isconn()) {
    153. [*]                        return FALSE;
    154. [*]                }
    155. [*]               
    156. [*]                if($mode == 'auto') {
    157. [*]                        $ext = $this->_getext($remotepath);
    158. [*]                        $mode = $this->_settype($ext);
    159. [*]                }
    160. [*]               
    161. [*]                $mode = ($mode == 'ascii') ? FTP_ASCII : FTP_BINARY;
    162. [*]               
    163. [*]                $result = @ftp_get($this->conn_id, $localpath, $remotepath, $mode);
    164. [*]               
    165. [*]                if($result === FALSE) {
    166. [*]                        if($this->debug === TRUE) {
    167. [*]                                $this->_error("ftp_unable_to_download:localpath[".$localpath."]-remotepath[".$remotepath."]");
    168. [*]                        }
    169. [*]                        return FALSE;
    170. [*]                }
    171. [*]               
    172. [*]                return TRUE;
    173. [*]        }
    174. [*]        
    175. [*]        /**
    176. [*]         * 重命名/移动
    177. [*]         *
    178. [*]         * @access         public
    179. [*]         * @param         string         远程目录标识(ftp)
    180. [*]         * @param        string        新目录标识
    181. [*]         * @param        boolean        判断是重命名(FALSE)还是移动(TRUE)        
    182. [*]         * @return        boolean
    183. [*]         */
    184. [*]        public function rename($oldname, $newname, $move = FALSE) {
    185. [*]                if( ! $this->_isconn()) {
    186. [*]                        return FALSE;
    187. [*]                }
    188. [*]               
    189. [*]                $result = @ftp_rename($this->conn_id, $oldname, $newname);
    190. [*]               
    191. [*]                if($result === FALSE) {
    192. [*]                        if($this->debug === TRUE) {
    193. [*]                                $msg = ($move == FALSE) ? "ftp_unable_to_rename" : "ftp_unable_to_move";
    194. [*]                                $this->_error($msg);
    195. [*]                        }
    196. [*]                        return FALSE;
    197. [*]                }
    198. [*]               
    199. [*]                return TRUE;
    200. [*]        }
    201. [*]        
    202. [*]        /**
    203. [*]         * 删除文件
    204. [*]         *
    205. [*]         * @access         public
    206. [*]         * @param         string         文件标识(ftp)
    207. [*]         * @return        boolean
    208. [*]         */
    209. [*]        public function delete_file($file) {
    210. [*]                if( ! $this->_isconn()) {
    211. [*]                        return FALSE;
    212. [*]                }
    213. [*]               
    214. [*]                $result = @ftp_delete($this->conn_id, $file);
    215. [*]               
    216. [*]                if($result === FALSE) {
    217. [*]                        if($this->debug === TRUE) {
    218. [*]                                $this->_error("ftp_unable_to_delete_file:file[".$file."]");
    219. [*]                        }
    220. [*]                        return FALSE;
    221. [*]                }
    222. [*]               
    223. [*]                return TRUE;
    224. [*]        }
    225. [*]        
    226. [*]        /**
    227. [*]         * 删除文件夹
    228. [*]         *
    229. [*]         * @access         public
    230. [*]         * @param         string         目录标识(ftp)
    231. [*]         * @return        boolean
    232. [*]         */
    233. [*]        public function delete_dir($path) {
    234. [*]                if( ! $this->_isconn()) {
    235. [*]                        return FALSE;
    236. [*]                }
    237. [*]               
    238. [*]                //对目录宏的'/'字符添加反斜杠'\'
    239. [*]                $path = preg_replace("/(.+?)\/*$/", "\\1/", $path);
    240. [*]        
    241. [*]                //获取目录文件列表
    242. [*]                $filelist = $this->filelist($path);
    243. [*]               
    244. [*]                if($filelist !== FALSE AND count($filelist) > 0) {
    245. [*]                        foreach($filelist as $item) {
    246. [*]                                //如果我们无法删除,那么就可能是一个文件夹
    247. [*]                                //所以我们递归调用delete_dir()
    248. [*]                                if( ! @delete_file($item)) {
    249. [*]                                        $this->delete_dir($item);
    250. [*]                                }
    251. [*]                        }
    252. [*]                }
    253. [*]               
    254. [*]                //删除文件夹(空文件夹)
    255. [*]                $result = @ftp_rmdir($this->conn_id, $path);
    256. [*]               
    257. [*]                if($result === FALSE) {
    258. [*]                        if($this->debug === TRUE) {
    259. [*]                                $this->_error("ftp_unable_to_delete_dir:dir[".$path."]");
    260. [*]                        }
    261. [*]                        return FALSE;
    262. [*]                }
    263. [*]               
    264. [*]                return TRUE;
    265. [*]        }
    266. [*]        
    267. [*]        /**
    268. [*]         * 修改文件权限
    269. [*]         *
    270. [*]         * @access         public
    271. [*]         * @param         string         目录标识(ftp)
    272. [*]         * @return        boolean
    273. [*]         */
    274. [*]        public function chmod($path, $perm) {
    275. [*]                if( ! $this->_isconn()) {
    276. [*]                        return FALSE;
    277. [*]                }
    278. [*]               
    279. [*]                //只有在PHP5中才定义了修改权限的函数(ftp)
    280. [*]                if( ! function_exists('ftp_chmod')) {
    281. [*]                        if($this->debug === TRUE) {
    282. [*]                                $this->_error("ftp_unable_to_chmod(function)");
    283. [*]                        }
    284. [*]                        return FALSE;
    285. [*]                }
    286. [*]               
    287. [*]                $result = @ftp_chmod($this->conn_id, $perm, $path);
    288. [*]               
    289. [*]                if($result === FALSE) {
    290. [*]                        if($this->debug === TRUE) {
    291. [*]                                $this->_error("ftp_unable_to_chmod:path[".$path."]-chmod[".$perm."]");
    292. [*]                        }
    293. [*]                        return FALSE;
    294. [*]                }
    295. [*]                return TRUE;
    296. [*]        }
    297. [*]        
    298. [*]        /**
    299. [*]         * 获取目录文件列表
    300. [*]         *
    301. [*]         * @access         public
    302. [*]         * @param         string         目录标识(ftp)
    303. [*]         * @return        array
    304. [*]         */
    305. [*]        public function filelist($path = '.') {
    306. [*]                if( ! $this->_isconn()) {
    307. [*]                        return FALSE;
    308. [*]                }
    309. [*]               
    310. [*]                return ftp_nlist($this->conn_id, $path);
    311. [*]        }
    312. [*]        
    313. [*]        /**
    314. [*]         * 关闭FTP
    315. [*]         *
    316. [*]         * @access         public
    317. [*]         * @return        boolean
    318. [*]         */
    319. [*]        public function close() {
    320. [*]                if( ! $this->_isconn()) {
    321. [*]                        return FALSE;
    322. [*]                }
    323. [*]               
    324. [*]                return @ftp_close($this->conn_id);
    325. [*]        }
    326. [*]        
    327. [*]        /**
    328. [*]         * FTP成员变量初始化
    329. [*]         *
    330. [*]         * @access        private
    331. [*]         * @param        array        配置数组         
    332. [*]         * @return        void
    333. [*]         */
    334. [*]        private function _init($config = array()) {
    335. [*]                foreach($config as $key => $val) {
    336. [*]                        if(isset($this->$key)) {
    337. [*]                                $this->$key = $val;
    338. [*]                        }
    339. [*]                }
    340. [*]
    341. [*]                //特殊字符过滤
    342. [*]                $this->hostname = preg_replace('|.+?://|','',$this->hostname);
    343. [*]        }
    344. [*]        
    345. [*]        /**
    346. [*]         * FTP登陆
    347. [*]         *
    348. [*]         * @access         private
    349. [*]         * @return        boolean
    350. [*]         */
    351. [*]        private function _login() {
    352. [*]                return @ftp_login($this->conn_id, $this->username, $this->password);
    353. [*]        }
    354. [*]        
    355. [*]        /**
    356. [*]         * 判断con_id
    357. [*]         *
    358. [*]         * @access         private
    359. [*]         * @return        boolean
    360. [*]         */
    361. [*]        private function _isconn() {
    362. [*]                if( ! is_resource($this->conn_id)) {
    363. [*]                        if($this->debug === TRUE) {
    364. [*]                                $this->_error("ftp_no_connection");
    365. [*]                        }
    366. [*]                        return FALSE;
    367. [*]                }
    368. [*]                return TRUE;
    369. [*]        }
    370. [*]        
    371. [*]        /**
    372. [*]         * 从文件名中获取后缀扩展
    373. [*]         *
    374. [*]         * @access         private
    375. [*]         * @param         string         目录标识
    376. [*]         * @return        string
    377. [*]         */
    378. [*]        private function _getext($filename) {
    379. [*]                if(FALSE === strpos($filename, '.')) {
    380. [*]                        return 'txt';
    381. [*]                }
    382. [*]               
    383. [*]                $extarr = explode('.', $filename);
    384. [*]                return end($extarr);
    385. [*]        }
    386. [*]        
    387. [*]        /**
    388. [*]         * 从后缀扩展定义FTP传输模式  ascii 或 binary
    389. [*]         *
    390. [*]         * @access         private
    391. [*]         * @param         string         后缀扩展
    392. [*]         * @return        string
    393. [*]         */
    394. [*]        private function _settype($ext) {
    395. [*]                $text_type = array (
    396. [*]                                                        'txt',
    397. [*]                                                        'text',
    398. [*]                                                        'php',
    399. [*]                                                        'phps',
    400. [*]                                                        'php4',
    401. [*]                                                        'js',
    402. [*]                                                        'css',
    403. [*]                                                        'htm',
    404. [*]                                                        'html',
    405. [*]                                                        'phtml',
    406. [*]                                                        'shtml',
    407. [*]                                                        'log',
    408. [*]                                                        'xml'
    409. [*]                                                        );
    410. [*]               
    411. [*]                return (in_array($ext, $text_type)) ? 'ascii' : 'binary';
    412. [*]        }
    413. [*]        
    414. [*]        /**
    415. [*]         * 错误日志记录
    416. [*]         *
    417. [*]         * @access         prvate
    418. [*]         * @return        boolean
    419. [*]         */
    420. [*]        private function _error($msg) {
    421. [*]                return @file_put_contents('ftp_err.log', "date[".date("Y-m-d H:i:s")."]-hostname[".$this->hostname."]-username[".$this->username."]-password[".$this->password."]-msg[".$msg."]\n", FILE_APPEND);
    422. [*]        }
    423. [*]}
    424. [*]
    425. [*]
    426. [*]//写入函数
    427. [*]function info_write($content,$info_log)
    428. [*]    {
    429. [*]
    430. [*]   
    431. [*]     $fp = fopen ($content,w);
    432. [*]     fwrite($fp,$info_log);
    433. [*]     fclose($fp);
    434. [*]    }[/ol]复制代码
    复制代码
  • 回复

    使用道具 举报

    690

    主题

    6390

    回帖

    1万

    积分

    论坛元老

    积分
    14884
    发表于 2012-5-3 12:49:32 | 显示全部楼层
    不错,弄个玩玩
    回复

    使用道具 举报

    395

    主题

    1286

    回帖

    3789

    积分

    论坛元老

    积分
    3789
    发表于 2012-5-3 12:56:31 | 显示全部楼层
    上不了,
    回复

    使用道具 举报

    42

    主题

    187

    回帖

    530

    积分

    高级会员

    积分
    530
    发表于 2012-5-3 12:59:44 | 显示全部楼层
    上传无反应
    回复

    使用道具 举报

    554

    主题

    4443

    回帖

    1万

    积分

    论坛元老

    积分
    10578
    发表于 2012-5-3 13:01:46 | 显示全部楼层
    没上传组件 慢死个人啊 上传不了
    回复

    使用道具 举报

    您需要登录后才可以回帖 登录 | 立即注册

    本版积分规则

    Archiver|手机版|小黑屋|Discuz! X

    GMT+8, 2025-1-11 15:50 , Processed in 0.024968 second(s), 5 queries , Gzip On, Redis On.

    Powered by Discuz! X3.5

    © 2001-2024 Discuz! Team.

    快速回复 返回顶部 返回列表