邪罗刹的菠萝阁


> 嘿嘿,这个 v2 版本终于强力起来啦。这次是先上传到 WP 所在服务器,然后远程服务器来下载。
> 这样子感觉好很多,权限问题应该就不会再出现了,因为 Move_upload 是 WP 服务器执行的。

> 呜呜,快被从浮动窗口获取 Url,然后关闭浮动窗口再把 Url 插入到文章中去的问题折腾死鸟。
> 不过终于搞定了,嘻嘻。到时候写一篇心得出来,只要搞清楚原理其实就很简单了,O(∩_∩)O。

一. WP-REMOTE-UPLOADER V2.0:

> 呵呵,因为这里全部重新写了代码,并且换了一个更好的思路,所以版本号直接跳到 2.0 鸟。
> 经过了所有功能的基本测试,完全运行正常,如果运行出现问题,请检查 Linux 的权限设定。

> 公告 - 千万别用可视化编辑器喔,那样无法插入到文章的,因为本程序暂不支持,不好意思呐。

1. 程序下载:

> 传送门 - http://code.google.com/p/evlosbox/downloads/detail?name=wp-remote-uploader-v2.zip

2. 安装方法:

> 修改 /wp-remote-uploader/config.php 中的 evlos 为你的密码,$server 的值为 ru.php 的 Url。

<?php $psw = 'evlos'; $server = 'http://evlos.fai.im/wpru/ru.php'; ?>

> 修改 /remote-server/ru.php 中的 evlos 为你的密码,imgup 为你的上传文件夹的文件夹名称。
> 把 ru.php 上传到远程图片服务器中,按照上面这样子设置,这一部分就搞定了,然后是插件设置。

$psw = 'evlos';
$imgdir = 'imgup';
//1) 程序在 http://evlos.fai.im/ru.php,那么图片会被上传到 http://evlos.fai.im/imgup/
//2) 程序在 http://evlos.fai.im/abc/ru.php,那么图片会被上传到 http://evlos.fai.im/abc/imgup/

> 把 wp-remote-uploader 文件夹复制到 /wp-content/plugins/ 处,然后启用这个WPRu插件。
> 就会在后台出现一个小老鼠的图标,点击它就可以开始上传图片了,v2.0 版仅支持单文件上传。

> 上传好文件之后,点击浮动窗口下方的 “插入文章” 按键,即可将下方例子 Url 代码插入到文章。

<img src="http://evlos.fai.im/wpru/imgup/re21_re6_Cap0000222.jpg" alt="" title="" />

> 考虑到需要上传多个文件,所以不会在插入后关闭浮动窗口,请在传完后点击黑暗处返回编辑器。

3. 程序思路:

> 首先在 WordPress 后台编辑器中打开远程上传界面,上传好图片,图片会被上传到临时文件夹。
> 临时文件夹会在下一次上传操作时候被清理一遍,所以也不用担心会堆积过多浪费空间,嘎嘎。
> 例如会保存到 http://www.evlos.org/wp-content/plugins/wp-remote-uploader/tmp/ 中。

http://www.evlos.org/wp-content/plugins/wp-remote-uploader/tmp/1.jpg

> 接着是在远程服务器上面弄一个 Ru.php 作为上传图片的程序,通过 GET 方式传递上传参数。
> 传递的参数包括,Chk 参数用于验证密码,Url 参数为图片临时文件的Url(斜杠被特殊处理)。

http://evlos.fai.im/ru.php?chk=205&url=http:[x]evlos.fai.im/imgs/Cap0000222.jpg

> 通过 File_get_contents 方式传递到远程服务器指定的文件夹中,并返回 Echo 远程文件的 Url。

无重复文件 - http://127.0.0.1/imgu/1.jpg
第一次重复 - http://127.0.0.1/imgu/re0_1.jpg
第二次重复 - http://127.0.0.1/imgu/re1_1.jpg
第三次重复 - http://127.0.0.1/imgu/re2_1.jpg
如果此时已有 re2_1.jpg,那么Url就会变为这样 - http://127.0.0.1/imgup/re3_1.jpg
特殊情况,如果上传的文件名为 re3_1.jpg
那么就会与 1.jpg 的第四次重复而生成的文件名相同,这时就会变成下面这样子
第一次重复 - http://127.0.0.1/imgup/re0_re3_1.jpg
第二次重复 - http://127.0.0.1/imgup/re1_re3_1.jpg
第三次重复 - http://127.0.0.1/imgup/re2_re3_1.jpg

> 最后 WordPress 插件也进行 File_get_contents 来获取返回的 Url,最后插入到文章中。
> 注意!!!!请勿使用中文图片文件名,因为程序尚未对其提供支持,不好意思喔 ╮(╯▽╰)╭。

二. 附言:

> 下一篇文章预告《WP用于围观某评论者发言的插件》,这个比较简单,所以空闲时间足够呢。

> 强烈感谢 Bolo 的提醒,让小邪恍然大悟鸟,原来这根本上其实是 Javascript 跨框架的问题喔。

Leave a comment
173 Comments.
  1. 超人 Google Chrome Windows 坐沙发!#1

    撒花。。。小邪真是个大好人! :rolleyes: :rolleyes: :rolleyes:

    @
  2. 羽中 Mozilla Firefox Windows 坐板凳!#2

    厉害哇,这插件很强大,足以震精WP界! :cool:

    @
  3. 万戈 Mozilla Firefox Windows 躺地板!#3

    MS小邪攻克技术难题了?牛的一B啊

    @
  4. hzlzh Mozilla Firefox Mac OS 天花板!#4

    终于出来了啊,小救了很多人,怕是可以告别 windows live writer 上传了. 晚上立马试试

    @
    • @hzlzh , 希望运行正常喔 ~ O(∩_∩)O ~

      @
      • @邪 罗刹,
        支持图床么? 我的图床是 img.hzlzh.com 跟博客相互独立的一套FTP。
        估计要修改代码,嘿嘿我还没试呢,先来问问,BS我吧。 我太懒

        @
    • @hzlzh , 呵呵,如果 img.hzlzh.com 可以运行PHP,那么小邪的程序就可以直接用了 ~
      如果不支持的话,只好等 Hzlzh特别版 的出现了喔 ~

      @
  5. 九站 Internet Explorer Windows 下水道!#5

    是我笨还是因为没用过WP,咋一点儿看不懂捏,伤心鸟。

    @
  6. kaka Mozilla Firefox Windows 地心!#6

    哟。。我要下载下来试用一下。。
    为啥图片重复后的命名方式这么纠结啊。
    不就直接后面1 2 3 4 不好么。

    @
    • @kaka , ╮(╯▽╰)╭,是为了防止重复呗 ~
      像小邪,截图软件默认就是 cap1.jpg cap2.jpg ~
      如果这样子命名就杯具了 ~

      @
  7. 方法很不错啊

    @
  8. 一直在用win7的网络位置功能,也挺方便 :rolleyes:

    @
  9. :rolleyes: :rolleyes: 支持一记啊~~~不错,但是一般用wlw写的~~~

    @
  10. 围观此人的功能好~

    @
  11. wuha~榜上有名!那围观的功能细节还没细细想过,就等小邪咯,CSS部分丢我就行~

    @
  12. 路过,学习了。 :cool:

    @
  13. 围观PHP高手~~~

    @
  14. 俄。。。wp不是有上传图片什么功能吗。难道没有?我好像记得有呀。。。一直用wlw,wp后台都搞不太清楚了 :mad:

    @
  15. 这么强悍的插件让朋友们先测试 :arrow: 嘿嘿

    @
  16. 这个插件相当实用

    @
  17. 没什么漏洞给黑客吧~

    @
  18. 不错,学习了。

    @
  19. 试用一下,看起来很实用

    @
  20. 你给我出来!

    @
  21. 期待围观!
    能不能代码形式呢?现在有点怕插件了。

    @
  22. 哈,小邪厉害 :rolleyes: ,试用去!!!

    @
  23. 恭喜小邪研究成功,大家的福音啊。

    @
  24. 呃~我这又是以“失败”告终:

    Warning: fopen(01-03/zwwooooo-nomove-2.jpg) [function.fopen]: failed to open stream: Permission denied in /home/zww/img.imzww.com/2010/ru.php on line 40Warning: fwrite(): supplied argument is not a valid stream resource in /home/zww/img.imzww.com/2010/ru.php on line 41Warning: fclose(): supplied argument is not a valid stream resource in /home/zww/img.imzww.com/2010/ru.php on line 42http://img.imzww.com/2010/01-03/zwwooooo-nomove-2.jpg

    @
  25. :evil: 有心栽花,花不开。
    无心插柳,柳成荫!~

    @
  26. WP用于围观某评论者发言的插件
    这个我相当期待啊!!!! :smile:

    @
  27. 又是一重磅之作啊!~很久就想找个这样的上传插件,不错下载! 对XX的工作表示感谢!

    @
  28. 我又来反馈问题了:不能上传 png 格式的图片 :cool:

    @
    • @zwwooooo , 呵呵,本来是写在《为WP增加围观某评论者评论的功能》的文章里面的 ~
      不过出乎意料,这个功能有点儿难弄 ~ 如果不弹出新窗口,就需要 AJax ~
      所以没有及时发出来,杯具啊杯具 ~
      以下是解决办法:

      if ((($_FILES["file"]["type"] == "image/gif") ||
      //在上面这行代码下面加入下面这行代码即可支持 PNG 图片的上传
      ($_FILES["file"]["type"] == "image/png") ||
      
      @
    • @zwwooooo , 嘎嘎嘎,这是最让小邪高兴的事情了 ~ :biggrin: :biggrin: :biggrin: :biggrin: :biggrin: :biggrin:

      @
      • @邪 罗刹,
        已经试用OK了,可以推荐了(我安排在后天晚的文章)顺便解决一下我目前严重的文囧问题 :biggrin:

        @
    • @zwwooooo , 呵呵,多谢支持 ~ :redface: :redface: :redface:

      @
  29. 厲害喔~ 學習了.

    @
  30. 再来捧捧场!

    同时求救:想在SS里实现大家的网站根据回访链接自动排行功能。
    就是想大家在臫的网站上带上我的链接,之后从他们站的点入一次就自动排到前面,你看看有没有办法解决?

    你这里成了淘宝啦,淘好代码。

    @
  31. :arrow: 期待“围观插件”...

    @
  32. 小邪啊,有没有可能,在上传时对服务器上的文件夹也可以选择目录呢?因为我觉得WP默认的按日期整理太乱,自己的图片是按类别、按文章建目录存放的,呵呵。

    @
  33. 有没有可能,在上传时可以先选择服务器上的文件夹目录,再上传呢?--因为我的图片是按类别、按文章建目录整理的,按日期太乱,不好找

    @
  34. :wink: 发重复了,博主把多余的删了吧

    @
  35. 这个插件,会不会有不安全的因素啊?
    我是把上传的关闭了的

    @
  36. 我一般从后台直接装!
    PS:上周去了趟颐和园,拍了点照片,欢迎来踩踩

    @
  37. 一下子就2.0了。。还真是迅速

    @
  38. 插件上传都弄完,结果一点图标,出现乱码,肯定是编码错,里边更认不是UTF-8,而且,不能控制图片大小和上传水印,不知道能不能完善,赫赫~~

    @
  39. 兄弟,原来你开发插件都没问题了,我有很多想法和实用的功能,到时候不知道可以不可以提出,也帮忙搞出来?

    @
    • @郑永 , 呵呵,你可以先简单描述一下,如果小邪感兴趣的话,就会做的 ~
      现在就是时间很紧,所以可能效率不会高 ~

      @
  40. 说实话我没看懂

    @
  41. 这个插件能不能做成和WP本身的那样,可以上传时缩小显示比例,然后可以加入水印的,要是这样,就很完美了,我现在都是先用WP上传,然后再用FTP下载回来再放图片服务器!

    @
    • @mcyclub , 汗,原来你喜欢这样子,那小邪看看以后的版本能否依附于 WP 的上传程序 ~

      @
      • @邪 罗刹,
        嘿嘿,是呀,那样直接全带进去,就省事儿多了,我的站访问量高,要是每次那样还得调整大小呀,再打LOGO呀,时间太长,嘿嘿!
        你的插件不错,一般情况下能解决很大问题,就是如果改进成这样,我想就更NB了!

        @
    • @mcyclub , 呵呵,请等待2.1版本,不过时间可能有些长,小邪上学要花时间额 ~

      @
  42. 我也安装了,但是进入后台激动,在使用时点击弹出层的区中一片空白。

    @
  43. 提交两个bug,如果图片目录是http://img.abc.com/xyz的话,(就是只有一层目录)xxx.com和xyz之间的斜杠会没有掉,但如果图片目录是http://img.abc.com/xyz/aaa/(就是图片的位置有两级目录)则不会有这个问题,在Godaddy图床上测试的时,也有个问题,就是图片地址后面会把GD免费空间的js广告代码一并get来 :idea:

    @
    • @John , 额,大悲剧 ~!
      目录的解决方法请尝试 $imgdir = '/xyz';
      。。。。。怎么会弄到 js 代码 【= =+】 杯具了,请等下个版本更新,不好意思 ~

      @
      • @邪 罗刹,
        哈哈~支持你~双休日俺有空就写篇支持一下这个插件!

        @
      • 是在RU里第二行改吗?如果“$imgdir = '/xyz';”这样改的话,上传后地址上是有斜杠了,可是图片根本没传上去。因为文件夹前面没斜杠呀, :grin:

        @
    • @John , 刚刚看了,你的博客很让小邪感兴趣喔,订阅一下,嘎嘎 ~ :redface:

      @
    • @John , 问题相同哈~~godaddy的免费空间话在$cont = file_get_contents($request.$urlx);后面加
      $n=strpos($cont,'');
      if ($n) $cont=substr($cont,0,$n);//

      @
    • @John , 刚才的回复里
      $n=strpos($cont,'');这一句‘’内为</iframe>,被过滤了

      @
    • 同有这问题 :wink:

      @
  44. 小邪!你真是牛啊!可是我安装了点开上传插件是空白?是怎么回事?
    还有我的ftp主机(图床)地址和http(也是图床)地址不是同一个。
    和这个有关吗?

    @
  45. 支持博主做的更好!

    @
  46. 希望这个插件能一直完善 造福群众啊 :biggrin:

    @
  47. 其实用上tinybox和ajax upload两个library的话,你的工作难度会大大降低。。

    @
  48. 改了了你的插件,http://boo.im/4i

    @
  49. 过来学习学习,果然是牛人额,呵呵 :rolleyes:

    @
  50. 2.1还没出来么?等很久了啊!!!

    @
  51. 嗨,我是台灣人,也是想要用這種功能才Google到的,很佩服你呢!強啊 !加入書籤啦~

    (不知台灣用語聽不聽得懂?)

    @
    • @渃 , 嘿嘿,我有段时间玩台湾的魔兽世界,用语不怕 ~
      希望这个简陋的插件能让你方便一些 ~
      我短时间内很难抽空完善这个插件额 ~

      @
      • @小邪 , 哈哈,那我和你溝通就不成問題啦!我也看得懂簡體阿~ (簡體比英文好學 :biggrin: )

        這插件哪會簡陋?剛好符合我的需求呢!先說聲感謝啦~
        Bug就不回報了,上面都有人說了~ :twisted:

        部落格也剛寫,用語也還在摸索...歡迎來晃晃~XD

        @
    • @渃 , 呵呵,好的,有空我也会多去转转 ~

      @
  52. 请问这是什么错误:
    Warning: file_get_contents(http://img.zwbeta.com/img/ru.php?chk=darkit&url=http://zwbeta.com/wp-content/plugins/wp-remote-uploader/tmp/dbank.gif) [function.file-get-contents]: failed to open stream: HTTP request failed! HTTP/1.1 500 Internal Server Error in /home/zwbetaco/public_html/wp-content/plugins/wp-remote-uploader/do.php on line 56

    @
  53. >> Report: [http://www.x2009.net/wp-content/plugins/wp-remote-uploader/tmp/QQ.jpg - File inexisted] ..

    获取url的那个框提示上面信息

    tmp文件夹下是空白的,没有这个文件,远程服务器也没这个文件

    tmp权限是755 cpanel面板,权限不能超过这个值,但是应该也没有问题吧

    能帮我看一下吗?非常感谢。

    下面是探针信息

    允许使用URL打开文件 allow_url_fopen:YES

    被禁用的函数 disable_functions symlink:
    shell_exec
    exec
    proc_close
    proc_open
    popen
    system
    dl
    passthru
    escapeshellarg
    escapeshellcmd

    @
  54. 这个有Demo吗?

    @
    • @不羡鱼 , 这个…… 呃~~ -______-",这种情况,不知道怎么做成DEMO。
      这个插件不成熟,暂时建议先不要用了噢。

      @
  55. 在Godaddy图床上测试的时,也有个问题,就是图片地址后面会把GD免费空间的js广告代码一并get来,在chrome下不能插入文章中,希望博主看一下,谢谢了,很好的插件哦~

    @
    • yeasine Google Chrome Windows

      @小杜 ,
      你用的那个gd空间? 免费的那个? win还是linux的? 我win的用不了这个插件...

      @
  56. 既然在你这里发现了很好用的东东,拿走,顺便给你广告了下。 :lol:

    @
  57. 啥时候更新功能呢?看着很好啊。主要是在后台图形界面上添加图片功能的提供。

    @
  58. 不知道啥时候升级, :razz: ,支持图形化插入就好了。

    @
  59. 插件很棒哦 小邪加油!!

    @
  60. 3.1.2版本不能用

    点那个按钮会乱码

    @
  61. 乱码如下:

    涓婁紶鏂囦欢锛?input type="file" name="file" id="file" class="uploadr"/>
    楠岃瘉瀵嗙爜锛?input class="textfield" type="password" name="ichk" value="evlos" />

    @
  62. 刚才的问题解决了,新问题出现了。得到的图片地址是http://img.bk.gdimg/re11_c.jpg
    应该是http://img.bk.gd/img/re11_c.jpg gd与img中间少了个/

    我检查了,设置的是按你的来的。远程程序在http://img.bk.gd/ru.php

    @
  63. 感谢作者!一直在寻找这样的插件。另外给个idea参考:能否做成支持纯静态的图床呢?因为图床通常强调空间大,如果空间大又要支持PHP,相信成本会比较高,要是可以纯静态空间,通过FTP来上传,可以大大降低图床租用成本呢。 :idea:

    @
    • @chaopi , 额,不好意思,这个插件已经停止更新了。
      P.s. 不过看很多人都需要的样子,以后应该还会进行重新开发,不过最近几个月大概没法安排了,不好意思。

      @
  64. 这个远程服务器上面的 Ru.php 不能放在sae上运行,如果可以那就非常好了。

    能不能修改一下?

    @
  65. 哎,看了评论,居然godaddy免费空间无法使用。

    @
  66. 不知道小邪兄还做这个插件吗?
    我这几天做了一个,功能差不多。是基于xmlrpc的插件~
    欢迎指点
    http://huiyi.in/title/rpu.html

    @
    • @ccaiai , 感谢你的贡献,这样很多需要的朋友都可以用咯 xD。
      XMLRPC上传法的思路很给力哇,嘿嘿,这样很多不限外链的博客群都可以用来作为图床了,但是看样子是有点损害他们的利益,所以估计用多了的话,有些博客群可能会取消外链。
      不过一个取消咱换另一个也木有关系啦,大不了搞一个批量XMLRPC上传便于更换就行咯 :lol: :lol: :lol: :lol:

      P.S. 小邪短时间内都无法继续开发这款插件了。

      @

Leave a Reply


[ Ctrl + Enter ]