Let's give you everything in fact, it will be more simple (by the way the code is suppose to become OpenSource)<br /><br />I work on Mac, Photoshop CS3 (10.0.1)<br />I use JavaScript<br />HTTP request received by a Mongrel server (Ruby on Rails)<br /><br />// Copyright 2008. Studio Melipone. All rights reserved. <br />// Licence GNU LGPL<br />// Send the active document to the UpShot web service (http://upshotit.com)<br />// The document is sent as a .png file, as a draft on the user's account.<br />// Therefore you must have a document opened and Adobe Bridge installed to perform this script.<br /><br />/*<br /> <javascriptresource><br /> <name>UpShot</name><br /> <type>automate</type><br /> <about><br /> Script for Upshot <br /> Copyright 2008 Studio Melipone <br /> http://upshotit.com <br /> </about><br /> <enableinfo>true</enableinfo><br /> </javascriptresource> <br />*/<br /><br />#target photoshop<br />#include "Base64.jsx"<br /><br />app.bringToFront();<br /><br />if( documents.length==0)// is a document opened ?<br /> alert("There are no Photoshop documents opened !")<br />else {<br /> /*********************************************/<br /> /* STEP 1 : save current document as image file (temporary) */<br /> /******************************************/<br /> var docRef = activeDocument;<br /> var filepath=app.path.toString()+"/"+docRef.name+".jpg";//create the image file in the installation folder of Photoshop<br /> var file = new File(filepath);<br /> //var options = new ExportOptionsSaveForWeb();<br /> //options.format = SaveDocumentType.PNG;<br /> var options = new JPEGSaveOptions();<br /> options.quality=8;<br /> docRef.saveAs (file, options, true, Extension.LOWERCASE);<br /> //docRef.exportDocument (file, ExportType.SAVEFORWEB , options);<br /> file.close();<br /> <br /> /********************************************************/<br /> <br /> // Only Bridge can use HttpConnection, so we test if it is installed<br /> var bridgeTarget = BridgeTalk.getSpecifier(getAppSpecifier("bridge")); <br /> <br /> if( !bridgeTarget ) { <br /> alert("Adobe Bridge not installed, needed to continue."); <br /> } <br /> else { <br /> preferences.rulerUnits = Units.PIXELS;<br /> displayDialogs = DialogModes.NO;<br /> <br /> /**********************************/<br /> /* STEP 2 : retrieve user's login & password */<br /> /*******************************/<br /> <br /> res = "dialog { text: 'UpShot authentication', \<br /> info: Panel { orientation: 'column', alignChildren:'right', \<br /> text: 'Please Identify Yourself', \<br /> login: Group { orientation: 'row', \<br /> s: StaticText { text:'Login :' }, \<br /> e: EditText { characters: 30 } \<br /> }, \<br /> passwd: Group { orientation: 'row', \<br /> s: StaticText { text:'Password :' }, \<br /> e: EditText { characters: 30, properties:{noecho: true} }, \<br /> } \<br /> }, \<br /> buttons: Group { orientation: 'row', \<br /> okBtn: Button { text:'OK', properties:{name:'ok'} }, \<br /> cancelBtn: Button { text:'Cancel', properties:{name:'cancel'} } \<br /> } \<br /> }"; <br /> <br /> dlg = new Window (res); <br /> dlg.center(); <br /> dlg.show(); <br /><br /> var login = dlg.info.login.e.text;//retrieve the values given in the form<br /> var pass = dlg.info.passwd.e.text;<br /><br /> /******************************/<br /> /* STEP 3 : send image through Bridge */<br /> /***************************/<br /> var f= new File(filepath);<br /> f.open();<br /> var buffer = f.read(f.length);<br /> f.close();<br /> <br /> alert("file size "+file.length);<br /> alert("f size "+f.length);<br /> alert("BUF "+buffer);<br /> alert(base64encode("B64 "+base64encode(buffer)));<br /> <br /> // create a new BridgeTalk message object <br /> var bt = new BridgeTalk; <br /> // target the Adobe Bridge application <br /> bt.target = bridgeTarget; <br /> //p173 of Javascript Tools Guide for CS3 for http message<br /> bt.body = "\<br /> if(!ExternalObject.webaccesslib ) {\<br /> ExternalObject.webaccesslib = new ExternalObject('lib:webaccesslib');\<br /> }\<br /> var http = new HttpConnection('http://127.0.0.1:3000/en/users/get_id.xml') ; \<br /> var idfile = new File('"+app.path.toString()+"/id.xml') ;\<br /> http.response = idfile ; \<br /> http.username = '"+login+"';\<br /> http.password = '"+pass+"';\<br /> http.mime='text/xml';\<br /> http.responseencoding='utf8';\<br /> http.execute();\<br /> http.response.close();\<br /> http.close();\<br /> idfile.open();\<br /> var send = new HttpConnection('http://127.0.0.1:3000/en/users/'+idfile.read()+'/upshots') ; \<br /> send.method = 'POST';\<br /> send.username = '"+login+"';\<br /> send.password = '"+pass+"';\<br /> send.mime='text/xml';\<br /> send.requestheaders=['Host','http://localhost:3000'];\<br /> send.requestheaders=['Accept','*/*'];\<br /> send.requestheaders=['Content-Type','text/xml'];\<br /> send.request='<upshot><title>titleforyourimage</title><file_name>"+f.name+"</file_name><size>"+f.length+"</size><javafile>"+base64encode(buffer)+"</javafile></upshot>';\<br /> send.execute();\<br /> idfile.toSource();\<br /> ";<br /> <br /> bt.onResult = function(result) { <br /> object = bt.result = eval(result.body);<br /> //file.remove();<br /> //object.remove();<br /> //bridge.quit ();<br /> return eval(result.body); <br /> } ;<br /> <br /> bt.onError = function( message ) { <br /> var errCode = parseInt (message.headers ["Error-Code"]); <br /> throw new Error (errCode, message.body); <br /> } ;<br /> <br /> //send the message ( also launch the targetted application)<br /> bt.send(10);<br /> <br /> /**********************************************/<br /> /* STEP 4: Once all done, delete the image previously created */<br /> /*******************************************/<br /> }<br />}<br /><br />//////////////////////////////////////////////////////////////////<br />/////////////////////////////////////////////////////////////////<br />/*functions from http://www.ps-scripts.com/bb/viewtopic.php?t=1282 */<br />//////////////////////////////////////////////////////////////<br />/////////////////////////////////////////////////////////////<br /><br />function getAppSpecifier(appName) {<br /><br /> if (isCS2()) {<br /> if (appName == 'photoshop') {<br /> return 'photoshop-9.0';<br /> }<br /> if (appName == 'bridge') {<br /> return 'bridge-1.0';<br /> }<br /> // add other apps here<br /> }<br /><br /> if (isCS3()) {<br /> if (appName == 'photoshop') {<br /> return 'photoshop-10.0';<br /> }<br /> if (appName == 'bridge') {<br /> return 'bridge-2.0';<br /> }<br /> // add other apps here<br /> }<br /><br /> return undefined;<br />};<br /><br />function isCS2() {<br /> var appName = BridgeTalk.appName;<br /> var version = BridgeTalk.appVersion;<br /><br /> if (appName == 'photoshop') {<br /> return version.match(/^9\./) != null;<br /> }<br /> if (appName == 'bridge') {<br /> return version.match(/^1\./) != null;<br /> }<br /><br /> return false;<br />};<br />function isCS3() {<br /> var appName = BridgeTalk.appName;<br /> var version = BridgeTalk.appVersion;<br /><br /> if (appName == 'photoshop') {<br /> return version.match(/^10\./) != null;<br /> }<br /> if (appName == 'bridge') {<br /> return version.match(/^2\./) != null;<br /> }<br /><br /> return false;<br />};