I want to retrieve file(s) with ASP.NET Web Api, XML file(s) or zip file(s).
There are many examples how to do this, like this:
http://www.asp.net/web-api/overview/working-with-http/sending-html-form-data,-part-2
But the problem is, I don't want to save them on HDD!
I just want to validate the XML with some functions and generate a report on the fly and want to return this report.
But every tutorial use the "MultipartFormDataStreamProvider" witch save the files on HDD.
How can I get the file(s) and file name(s) in memory?
Kind regards
I think you can use the MultipartMemoryStreamProvider?
See a way to implement file upload without writing to the file system.
Related
I'm trying to create a really basic web app that lets a user upload an xml file with a form, runs an XQuery script which I already have written as a function, and returns the result. I have BaseX running on Tomcat, but for the life of my I cannot understand RESTXQ even though I have a lot of experience with complex XQuery scripts. The BaseX documentation has been no help (http://docs.basex.org/wiki/RESTXQ). What is the basic architecture?
From what I can see, its all keyed on this restxq.xqm file in the webapp directory. If you link to that directory it runs the .xqm file and this is mandated by a web.xml file. But it seems that all of the html sections are also stored within this restxq.xqm file. Wouldn't it make sense so store html sections in separate files for maintenance/reusability?
Also, for my file upload form, do I have the action attribute point to restxq.xqm? I can make the pages all static html since the app is so simple, but where is the index.html file go? This seems WAY more confusing than it has to be.
How I can upload a file with metadata creating a new version from ASP.NET web application to SharePoint 2010?
Is there any way?
Thanks in advance.
There are multiple ways to upload a file to a document library.
Perhaps the simplest way is simply to copy the file to the document library's URL using File.Copy. SharePoint supports WebDAV so you can treat a library as a network folder, opening/saving files directly from any application, copying and renaming from Windows Explorer etc.
You do face some limitations though:
The full path of the file can't be larger than 260 characters and SharePoint will truncate it without warning.
The file name can't contain some characters that are valid for Windows Explorer, eg #
If you try to save a file with the same name as an existing one, SharePoint will create a new file with a slightly different name without asking
You have no control over the author and creation date properties. SharePoint will use the current date and the credentials of the user executing the code.
You can't set any metadata although you can update the file's ListItem properties after uploading.
Another option is to use the Client object model and upload the file using File.SaveBinaryDirect. This option is better than simply copying the file, as it allows you to overwrite an existing file, but you still don't get direct access to the file's properties. Uploading could be as simple as this:
var clientContext = new ClientContext("http://intranet.contoso.com");
using (var fileStream =new FileStream("NewDocument.docx", FileMode.Open))
ClientOM.File.SaveBinaryDirect(clientContext,
"/Shared Documents/NewDocument.docx", fileStream, true);
Another option is to connect to a library using the Client Object Model and then create a file using FileCollection.Add, eg
Microsoft.SharePoint.Client.File uploadFile = documentsList.RootFolder.Files.Add(
fileCreationInformation);
Check this SO question, Upload a document to a SharePoint list from Client Side Object Model on how to use both SaveBinaryDirect and FileCollection.Add. The answers display both how to upload a file and how to modify its properties
I need to write a webscript in alfresco that returns to the user a single zip file that contains several files, some of them created on the fly by the script and some of them stored on the server.
How can i do it?I know how to create different files on the server, i don't know how to zip them and how to include files that are stored on the server.
Well, you can develop a Java action that would do the zipping part.
Last time I was looking into this, I didn't find an out-of-the-box solution.
As for returning, you can specify that by specifying webscript format, ie:
<format default="html">any</format>
Only, there is a problem, you can't set a zip format, but alfresco wiki says how you can add more:
http://wiki.alfresco.com/wiki/3.0_Web_Scripts_Framework#HTTP_Response_Formats
Edit: I just found this thread (while looking for a solution for another problem). In the thread a custom "unzip" action is described, maybe you can use that to add a zip/unzip action in your alfresco installation and use it.
I want to create a file and write some data (userid) into the file at first run of my application, during the second run all the operation (will go to the next state) based on the file data, is it possible? How to create and write data into file?
It depends if you're working on a pure-Flex or an AIR project.
If you are making an AIR application, you can access local files using the File class (more informations can be found here and here) ;
If not, you'll have to use a server-side script (PHP, ColdFusion, Java EE...) to do the job, calling it using a HTTPService object for instance.
If you are not concerned about file's location and max content of file is less than 100 KB then you may make use of Shared Objects in flash.
I have to make reports with graphics in Excel and PDF from data in a database in an asp.net app.
I don't want to use com objects so I have been using Open Xml Sdk to build the excel file from a template file and redirect the response to the new file generated but I don't know how to make the PDF file...
I accept any comments about how I can generate the pdf file in my web app...
Thanks by the time invested reading this...
go to this site for pdf.
http://itextsharp.sourceforge.net/
I've done this before but with a bit of a cheat.
Office XP and onwards can actually read html files as office documents so if you sent a html document containing a table with the extension and mime type of an excel doc then windows would open it in excel.
From there you can use a web service such as http://www.htm2pdf.co.uk/htm2pdf-web-service.aspx to convert the html table data into a pdf.
Even better than that if you change the extension of a docx or xslx file to zip you can unzip the stored files and you'll find they are xml files that you can edit and rezip (changing the extension back of course).
The easiest solution -- in my opinion -- is to use Client Report Definition Files. After you defined reports, you can
show them to users in your ASP.NET application using the ReportViewer component (Google for asp.net ReportViewer),
export them directly to Excel (Google for localreport excel),
export them directly to PDF (Google for localreport pdf).
For the last two options, you can either save the file to disk or send it directly to the asp.net client (again, there are lots of code examples on the web).