webscript uploading exception
Options
- Mark as New
- Bookmark
- Subscribe
- Mute
- Subscribe to RSS Feed
- Permalink
- Report Inappropriate Content
06-30-2009 03:35 AM
Hi i'm trying to upload a file using simple webscripts followed @ http://wiki.alfresco.com/wiki/Web_Scripts_Examples#Folder_Browse.2FRSS_Feed…
every thing working fine. Now i want to integrate this script with a sample application.
Here my functionality is, there is a link for uploading a file. when the user clicks on this it will display a popup box with browse,title,description options. And after clicking on this i'm getting the following exception.
here my code is, DocumentList.get.html.ftl
and my upload.post.desc.xml is
and my upload.post.js is
and my upload.post.html.ftl is
the complete DocumentList.get.html.ftl is (this is a home page,,, here only i'm having various links for creating folder,uploading document, creating a text file etc)
Please give any ideas on this….
every thing working fine. Now i want to integrate this script with a sample application.
Here my functionality is, there is a link for uploading a file. when the user clicks on this it will display a popup box with browse,title,description options. And after clicking on this i'm getting the following exception.
404 Description: Requested resource is not available. Message: Script url /simpleui/document/$action="/alfresco/service/simpleui/document/upload does not map to a Web Script. Exception: org.alfresco.web.scripts.WebScriptException - Script url /simpleui/document/$action="/alfresco/service/simpleui/document/upload does not map to a Web Script. org.alfresco.web.scripts.AbstractRuntime.executeScript(AbstractRuntime.java:106) org.alfresco.web.scripts.servlet.WebScriptServlet.service(WebScriptServlet.java:116) javax.servlet.http.HttpServlet.service(HttpServlet.java:717) org.apache.catalina.core.ApplicationFilterChain.internalDoFilter(ApplicationFilterChain.java:290) org.apache.catalina.core.ApplicationFilterChain.doFilter(ApplicationFilterChain.java:206) org.apache.catalina.core.StandardWrapperValve.invoke(StandardWrapperValve.java:233) org.apache.catalina.core.StandardContextValve.invoke(StandardContextValve.java:191) org.apache.catalina.core.StandardHostValve.invoke(StandardHostValve.java:128) org.apache.catalina.valves.ErrorReportValve.invoke(ErrorReportValve.java:102) org.apache.catalina.core.
here my code is, DocumentList.get.html.ftl
var dlg,previewdlg,removedlg,sdlg,udlg; function init(e) { dlg = dojo.widget.byId("DialogContent"); previewdlg = dojo.widget.byId("DialogPreview"); removedlg = dojo.widget.byId("DialogRemove"); sdlg = dojo.widget.byId("SpaceDialog"); udlg = dojo.widget.byId("UploadDialog"); } function uploadFile() { document.getElementById("upload_label").innerHTML='Upload a File'; document.forms['upload_new'].action = '$action="${url.serviceContext}/simpleui/document/upload'; udlg.show(); }Upload a file <img src="${url.context}/images/icons/add.gif" onClick="uploadFile();"/></b> </tr><div dojoType="dialog" id="UploadDialog" bgColor="gray" bgOpacity="0.5" toggle="fade" toggleDuration="250" closeOnBackgroundClick="true"><form name="upload_new" action="" method="post"> <table> <tbody> <tr> <th colspan="2"><b><div id="upload_label"></div></b></th> </tr> <tr><td>File:<td><input type="file" name="file"> <tr><td>Title:<td><input name="title"> <tr><td>Description:<td><input name="desc"> <tr><td><td> <tr> <td colspan="2" align="center"> <input type="submit" name="submit" value="Upload"> <input type="button" id="hider2" value="Cancel" onClick="udlg.hide()"></td> </tr> </tbody> </table> </form>
and my upload.post.desc.xml is
<webscript> <shortname>File Upload Form Sample</shortname> <description>Form for uploading file content and meta-data into Repository</description> <url>/simpleui/document/upload</url> <authentication>user</authentication></webscript>
and my upload.post.js is
var filename = null;var content = null;var title = "";var description = "";// locate file attributesfor each (field in formdata.fields){ if (field.name == "title") { title = field.value; } else if (field.name == "desc") { description = field.value; } else if (field.name == "file" && field.isFile) { filename = field.filename; content = field.content; }}// ensure mandatory file attributes have been locatedif (filename == undefined || content == undefined){ status.code = 400; status.message = "Uploaded file cannot be located in request"; status.redirect = true;}else{ // create document in company home for uploaded file upload = companyhome.createFile("upload" + companyhome.children.length + "_" + filename) ; upload.properties.content.write(content); upload.properties.encoding = "UTF-8"; upload.properties.title = title; upload.properties.description = description; upload.save(); // setup model for response template model.upload = upload;}
and my upload.post.html.ftl is
<META HTTP-EQUIV="Refresh" CONTENT="1; URL=${url.serviceContext}/simpleui/document/list.html"><html> <head> <title>Upload Web Script Sample</title> <link rel="stylesheet" href="${url.context}/css/main.css" TYPE="text/css"> </head> <body> <table> <tr><td><td>Alfresco ${server.edition} v${server.version} <tr><td><td> <tr><td><td>Uploaded <a href="${url.serviceContext}/sample/folder${upload.displayPath}">${upload.name}</a> of size ${upload.properties.content.size}. <tr> <td><a href="${url.serviceContext}/simpleui/document/list.html">Back to list page</a> </tr> </table> </body></html>
the complete DocumentList.get.html.ftl is (this is a home page,,, here only i'm having various links for creating folder,uploading document, creating a text file etc)
<!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 4.01//EN" "http://www.w3.org/TR/html4/strict.dtd"><html><head> <title>Alfresco Simple UI</title> <script type="text/javascript"> var djConfig = { isDebug: true ,debugAtAllCosts: true }; </script> <script type="text/javascript" src="${url.context}/scripts/ajax/dojo/dojo.js"></script> <script type="text/javascript"> dojo.require("dojo.widget.FilteringTable"); dojo.require("dojo.widget.InlineEditBox"); dojo.require("dojo.widget.Dialog"); dojo.require("dojo.event.*"); dojo.hostenv.writeIncludes(); var dlg,previewdlg,removedlg,sdlg,udlg; function init(e) { dlg = dojo.widget.byId("DialogContent"); previewdlg = dojo.widget.byId("DialogPreview"); removedlg = dojo.widget.byId("DialogRemove"); sdlg = dojo.widget.byId("SpaceDialog"); udlg = dojo.widget.byId("UploadDialog"); } dojo.addOnLoad(init); function populate(id,noderef) { document.getElementById("file_label").innerHTML='Edit File'; document.forms['edit_new_form'].action = '${url.serviceContext}/simpleui/document/save'; document.getElementById("file_name").value=document.getElementById("name_"+id).innerHTML; document.getElementById("file_description").value=document.getElementById("desc_"+id).innerHTML; document.getElementById("file_body").value=document.getElementById("body_"+id).innerHTML; document.getElementById("file_noderef").value=noderef; dlg.show(); } function populatepreview(id) { document.getElementById("preview_name").innerHTML=document.getElementById("name_"+id).innerHTML; document.getElementById("preview_body").innerHTML=document.getElementById("body_"+id).innerHTML; previewdlg.show(); } function populateremove(id,noderef) { document.getElementById("remove_name").value=document.getElementById("name_"+id).innerHTML; document.getElementById("remove_noderef").value=noderef; removedlg.show(); } function create() { document.getElementById("file_label").innerHTML='Create File'; document.forms['edit_new_form'].action = '${url.serviceContext}/simpleui/document/create'; dlg.show(); } function createSpace() { document.getElementById("space_label").innerHTML='Create Space'; document.forms['space_new'].action = '${url.serviceContext}/simpleui/document/createSpace'; sdlg.show(); } function uploadFile() { document.getElementById("upload_label").innerHTML='Upload a File'; document.forms['upload_new'].action = '$action="${url.serviceContext}/simpleui/document/upload'; udlg.show(); } </script> <style type="text/css"> /*** The following is just an example of how to use the table. You can override any class names to be used if you wish. ***/ table { font-family:Lucida Grande, Verdana; font-size:0.8em; width:100%; border:1px solid #ccc; border-collapse:collapse; cursor:default; } table td, table th{ padding:2px; font-weight:normal; } table thead td, table thead th { background-image:url(${url.context}/images/dojo/ft-head.gif); background-repeat:no-repeat; background-position:top right; } table thead td.selectedUp, table thead th.selectedUp { background-image:url(${url.context}/images/dojo/ft-headup.gif); } table thead td.selectedDown, table thead th.selectedDown { background-image:url(${url.context}/images/dojo/ft-headdown.gif); } table tbody tr td{ border-bottom:1px solid #ddd; } table tbody tr.alt td{ background: #e3edfa; } table tbody tr.selected td{ background: yellow; } table tbody tr:hover td{ background: #a6c2e7; } table tbody tr.selected:hover td{ background:#ff9; } #inputArea{ margin:1em 0; padding:1em; background-color:#eef; } #updateTestInput{ border:1px solid #ccc; width:100%; height:80px; font-family:serif; font-size:0.9em; overflow:auto; } .bar a img { border:0; vertical-align: middle; } .dojoDialog { background : #eee; border : 1px solid #999; -moz-border-radius : 5px; padding : 4px; width: 80% } .footer { text-align: center; position:absolute; font-family:Lucida Grande, Verdana; font-size:0.8em; bottom:10px; left: 35% } </style></head><body> <div dojoType="dialog" id="DialogPreview" bgColor="gray" bgOpacity="0.5" toggle="fade" toggleDuration="250" closeOnBackgroundClick="true"> <table> <tbody> <tr> <th><b>Previw File </b><div id="preview_name"></div></th> </tr> <tr> <td><div id="preview_body"></div></td> </tr> <tr> <td align="center"><input type="button" id="hide3" value="Close" onClick="previewdlg.hide()"></td></td> </tr> </tbody> </table> </div> <div dojoType="dialog" id="DialogRemove" bgColor="gray" bgOpacity="0.5" toggle="fade" toggleDuration="250" closeOnBackgroundClick="true"> <form name="remove_form" action="${url.serviceContext}/simpleui/document/remove" method="post"> <table> <tbody> <tr> <th><b>Remove File </b><INPUT type="text" id="remove_name" name="name" value="" disabled/></th> </tr> <tr> <td>Do you really really really want to delete this file?</td> </tr> <tr> <td align="center"> <INPUT type="hidden" id="remove_noderef" name="noderef" value=""/> <INPUT type="hidden" id="remove_name" name="name" value=""/> <input type="submit" value="Ok"/> <input type="button" id="hide3" value="Cancel" onClick="removedlg.hide()"></td></td> </tr> </tbody> </table> </form> </div> <div dojoType="dialog" id="DialogContent" bgColor="gray" bgOpacity="0.5" toggle="fade" toggleDuration="250" closeOnBackgroundClick="true"> <form name="edit_new_form" action="" method="post"> <table> <tbody> <tr> <th colspan="2"><b><div id="file_label"></div></b></th> </tr> <tr> <td>Name</td> <td><input id="file_name" name="name" type="text"></td> </tr> <tr> <td>Description</td> <td><input id="file_description" name="desc" type="text" size="60"></td> </tr> <tr> <td valign="top">Body</td> <td><textarea id="file_body" name="body" rows="10" cols="60"></textarea></td> </tr> <tr> <td colspan="2" align="center"> <INPUT type="hidden" id="file_noderef" name="noderef" value=""/> <INPUT type="submit" value="Save"> <input type="button" id="hider2" value="Cancel" onClick="dlg.hide()"></td> </tr> </tbody> </table> </form> </div><div dojoType="dialog" id="SpaceDialog" bgColor="gray" bgOpacity="0.5" toggle="fade" toggleDuration="250" closeOnBackgroundClick="true"> <form name="space_new" action="" method="post"> <table> <tbody> <tr> <th colspan="2"><b><div id="space_label"></div></b></th> </tr> <tr> <td>Name</td> <td><input id="space_name" name="sn" type="text"></td> </tr> <tr> <td>Title</td> <td><input id="space_title" name="st" type="text"></td> </tr> <tr> <td>Description</td> <td><input id="space_description" name="sd" type="text" size="60"></td> </tr> <tr> <td colspan="2" align="center"> <INPUT type="hidden" id="file_noderef" name="noderef" value=""/> <INPUT type="submit" value="Create"> <input type="button" id="hider2" value="Cancel" onClick="sdlg.hide()"></td> </tr> </tbody> </table> </form> </div><div dojoType="dialog" id="UploadDialog" bgColor="gray" bgOpacity="0.5" toggle="fade" toggleDuration="250" closeOnBackgroundClick="true"><form name="upload_new" action="" method="post"> <table> <tbody> <tr> <th colspan="2"><b><div id="upload_label"></div></b></th> </tr> <tr><td>File:<td><input type="file" name="file"> <tr><td>Title:<td><input name="title"> <tr><td>Description:<td><input name="desc"> <tr><td><td> <tr> <td colspan="2" align="center"> <input type="submit" name="submit" value="Upload"> <input type="button" id="hider2" value="Cancel" onClick="udlg.hide()"></td> </tr> </tbody> </table> </form></div> <h3>Simple Alfresco User Interface</h3> <h4>Hello ${person.properties.firstName}!</h4> <tr> <b>Create a File <img src="${url.context}/images/icons/add.gif" onClick="create();"/> Create a Space <img src="${url.context}/images/icons/folder.gif" onClick="createSpace();"/></b> Upload a file <img src="${url.context}/images/icons/add.gif" onClick="uploadFile();"/></b> </tr> <table dojoType="filteringTable" id="documentList" alternateRows="true" maxSortable="2" cellpadding="0" cellspacing="0" border="0"> <thead> <tr> <th field="Name" dataType="String" sort="asc" valign="top">Name</th> <th field="DateAdded" dataType="DateTime" align="center" valign="top">Created</th> <th field="DateModified" dataType="DateTime" align="center" valign="top">Modified</th> <th dataType="html">Description</th> <!– <th dataType="html">Body</th> –> <th dataType="html">Actions</th> </tr> </thead> <tbody> <#list resultset as node> <tr value="${node_index + 1}"> <td><div id="name_${node_index + 1}">${node.name}</div></td> <td>${node.properties.created?datetime}</td> <td>${node.properties.modified?datetime}</td> <td><div id="desc_${node_index + 1}">${node.properties.description}</div></td> <!– <td><div id="body_${node_index + 1}">${node.content}</div></td> –> <td> <div class="bar"> <a href="#" onClick="populatepreview('${node_index + 1}')"><img src="${url.context}/images/icons/preview.gif"/></a> <a href="#" onClick="populate('${node_index + 1}','${node.nodeRef}')"><img src="${url.context}/images/icons/edit_icon.gif"/></a> <a href="${url.serviceContext}/api/node/content/${node.nodeRef.storeRef.protocol}/${node.nodeRef.storeRef.identifier}/${node.nodeRef.id}/${node.name?url}"><img src="${url.context}/images/icons/CheckOut_icon.gif"/></a> <a href="#" onClick="populateremove('${node_index + 1}','${node.nodeRef}')"><img src="${url.context}/images/icons/delete.gif"/></a> </div> </td> </tr> </#list> </tbody> </table> <div class="footer"> Alfresco. © 2009-2010 All rights reserved. </div></body></html>
Please give any ideas on this….
Labels:
- Labels:
-
Archive
10 REPLIES 10
Options
- Mark as New
- Bookmark
- Subscribe
- Mute
- Subscribe to RSS Feed
- Permalink
- Report Inappropriate Content
07-02-2009 07:25 AM
Ya, small problem.
If i use like
everything working great and the file is uploading into the company home.
Now i want to upload it into the Demo space under company home.
the following is my code.
But after uploading the file it should return to the main page. And returning to the main page and showing the newly uploaded page but it is showing all the forms in the main page(actually these forms should appear after clicking the particular button)..
The document is successfully uploaded into the demo folder under company home.
The following is my upload.post.html.ftl
can anyone tell me the problem why it is not displaying the main page properly ?
If i use like
upload = companyhome.createFile("upload" + companyhome.children.length + "_" + filename) ;
everything working great and the file is uploading into the company home.
Now i want to upload it into the Demo space under company home.
the following is my code.
var demoNode = companyhome.childByNamePath("Demo");upload = demoNode.createFile("upload" + companyhome.children.length + "_" + filename) ;
But after uploading the file it should return to the main page. And returning to the main page and showing the newly uploaded page but it is showing all the forms in the main page(actually these forms should appear after clicking the particular button)..
The document is successfully uploaded into the demo folder under company home.
The following is my upload.post.html.ftl
<META HTTP-EQUIV="Refresh" CONTENT="1; URL=${url.serviceContext}/simpleui/document/list.html"><html> <head> <title>Upload Web Script Sample</title> <link rel="stylesheet" href="${url.context}/css/main.css" TYPE="text/css"> </head> <body> <table> <tr><td><td>Alfresco ${server.edition} v${server.version} <tr><td><td> <tr><td><td>Uploaded <a href="${url.serviceContext}/sample/folder${upload.displayPath}">${upload.name}</a> of size ${upload.properties.content.size}. <tr> <td><a href="${url.serviceContext}/simpleui/document/list.html">Back to list page</a> </tr> </table> </body></html>
can anyone tell me the problem why it is not displaying the main page properly ?
