如何在没有浏览器的情况下以编程方式将图像上传/发布到图像托管网站?

时间:2008-11-09 03:45:20

标签: c# .net upload

我想编写一个简单的实用程序,通过文件的右键单击上下文菜单将图像上传到各种免费图像托管网站,如TinyPic或Imageshack。

如何使用.NET执行此操作?我看过一些使用cURL将图像发布到这些网站的linux脚本,但我不确定如何创建帖子请求,并在C#中添加图像?

有人能指出我正确的方向吗?


编辑:

我找到了一个非常好的资源。 Cropper是一个用.net编写的免费截图工具,有很多开源插件。其中一个是SendToTinyPic ..完整的源代码。链接在这里:
http://www.codeplex.com/cropperplugins

4 个答案:

答案 0 :(得分:4)

FlickrNet API使得使用.NET的Flickr非常容易。您必须拥有Flickr帐户以及API key and shared secret。获得所需后,使用API​​非常简单:

// http://www.flickr.com/services/api/misc.api_keys.html
string flickrApiKey = "<api key>";
string flickrApiSharedSecret = "<shared secret>";
string flickrAuthenticationToken = "<authentication token>";

Flickr flickr = new Flickr( flickrApiKey, flickrApiSharedSecret );

flickr.AuthToken = flickrAuthenticationToken;    

foreach ( FileInfo image in new FileInfo[] { 
    new FileInfo( @"C:\image1.jpg" ), 
    new FileInfo( @"C:\image2.jpg" ) } )
{
    string photoId = flickr.UploadPicture(
        image.FullName, image.Name, image.Name, "tag1, tag2" );
}

答案 1 :(得分:3)

使用HttpWebRequest。

使用此类,您可以将数据发布到远程HTTP地址,只需将mime /类型设置为多部分/表单编码,然后使用请求发布图像中的二进制数据。

http://msdn.microsoft.com/en-us/library/system.net.httpwebrequest(VS.71).aspx

答案 2 :(得分:1)

对于ImageShack,请查看this Application

答案 3 :(得分:0)

据我所知,

TinyPic.com没有API,但Cropper SendToTinyPic插件尝试使用“屏幕抓取”上传。该插件的官方版本现在无法正常运行,但我使用相同的方法整理了一个补丁,并将其提交给cropperplugins project。它只是一个改变的源模块。任何人都可以下载插件项目,然后放入我的补丁,它应该工作。

使用补丁,它的PritScrn或Alt-PrntScrn将保存图像并上传到tinypic,并将原始图像的URL填入剪贴板。全押在2秒内。简单。

如果您不想要实际工具,您仍然可以查看我的补丁的源代码,了解如何使用表单数据和文件上传来发布页面。没有直接链接。请参阅http://cropperplugins.codeplex.com/SourceControl/PatchList.aspx并查找#3239。


生成此示例图像,然后使用Alt-PrtScrn key-combo自动上传到tinypic.com。 Example image

要将其嵌入此处,我只需要ctrl-V,因为URL存储在剪贴板上。