<?xml version="1.0" encoding="UTF-8" ?>
<?xml-stylesheet type="text/xsl" href="https://www.dotnetzone.gr:443/cs/utility/FeedStylesheets/rss.xsl" media="screen"?><rss version="2.0" xmlns:dc="http://purl.org/dc/elements/1.1/" xmlns:slash="http://purl.org/rss/1.0/modules/slash/" xmlns:wfw="http://wellformedweb.org/CommentAPI/"><channel><title>ASP.NET WebForms</title><link>https://www.dotnetzone.gr:443/cs/forums/13/ShowForum.aspx</link><description>Θέματα για web εφαρμογές, σε ASP.NET WebForms</description><dc:language>el</dc:language><generator>CommunityServer 2.1 SP3 (Build: 20423.1)</generator><item><title>Απ: αποστολή PDF απο Web service</title><link>https://www.dotnetzone.gr:443/cs/forums/thread/63595.aspx</link><pubDate>Wed, 23 Feb 2011 19:12:25 GMT</pubDate><guid isPermaLink="false">2622095e-976c-431a-859e-16783ec7ecd7:63595</guid><dc:creator>Παναγιώτης Καναβός</dc:creator><slash:comments>0</slash:comments><comments>https://www.dotnetzone.gr:443/cs/forums/thread/63595.aspx</comments><wfw:commentRss>https://www.dotnetzone.gr:443/cs/forums/commentrss.aspx?SectionID=13&amp;PostID=63595</wfw:commentRss><description>&lt;P&gt;Το proxy στο CF project επίσης το αναφέρει ως byte[]? Λες δηλαδή ότι εκεί που περίμενες το byte array να έχει τα περιεχόμενα του PDF, βρίσκεις μέσα ένα Base64 encoded string? Μήπως εκείνο το commented Convert.ToBase64String() έχει παραμείνει ενεργό στην παραγωγή και δεν το πρόσεξες?&lt;/P&gt;
&lt;P&gt;Να επαναλάβω ότι είναι προτιμότερο να μην χρησιμοποιήσεις web service γι αυτή τη δουλειά και ειδικά αν το αρχείο υπάρχει ήδη στο σκληρό. Ο IIS (και όλα τα ενδιάμεσα proxies) ξέρουν πως να κάνουν stream και cache αρχεία, ενώ όταν τα στέλνεις ως αποτέλεσμα ενός web method πρέπει να πάνε μονοκόμματα.&lt;/P&gt;</description></item><item><title>Απ: αποστολή PDF απο Web service</title><link>https://www.dotnetzone.gr:443/cs/forums/thread/63588.aspx</link><pubDate>Wed, 23 Feb 2011 18:31:04 GMT</pubDate><guid isPermaLink="false">2622095e-976c-431a-859e-16783ec7ecd7:63588</guid><dc:creator>DaltonGR</dc:creator><slash:comments>0</slash:comments><comments>https://www.dotnetzone.gr:443/cs/forums/thread/63588.aspx</comments><wfw:commentRss>https://www.dotnetzone.gr:443/cs/forums/commentrss.aspx?SectionID=13&amp;PostID=63588</wfw:commentRss><description>Η μέθοδος που χρησιμοποειώ είναι&lt;br&gt;&lt;br&gt;&amp;lt;WebMethod()&amp;gt; _&lt;br&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp; Public Function getEntalmaPDF(ByVal filename As String) As Byte()&lt;br&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; filename = Server.MapPath("~") &amp;amp; "me.pdf"&lt;br&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; Dim _tempByte() As Byte = Nothing&lt;br&gt;&lt;br&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; Try&lt;br&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; Dim _fileInfo As New IO.FileInfo(filename)&lt;br&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; Dim _NumBytes As Long = _fileInfo.Length&lt;br&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; Dim _FStream As New IO.FileStream(filename, IO.FileMode.Open, IO.FileAccess.Read)&lt;br&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; Dim _BinaryReader As New IO.BinaryReader(_FStream)&lt;br&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; _tempByte = _BinaryReader.ReadBytes(Convert.ToInt32(_NumBytes))&lt;br&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; _fileInfo = Nothing&lt;br&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; _NumBytes = 0&lt;br&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; _FStream.Close()&lt;br&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; _FStream.Dispose()&lt;br&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; _BinaryReader.Close()&lt;br&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; Return _tempByte&lt;br&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; Catch ex As Exception&lt;br&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; Return Nothing&lt;br&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; End Try&lt;br&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; 'Convert.ToBase64String(_tempByte)&lt;br&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; Return _tempByte&lt;br&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp; End Function&lt;br&gt;&lt;br&gt;Επιστρέφει byte()&lt;br&gt;</description></item><item><title>Απ: αποστολή PDF απο Web service</title><link>https://www.dotnetzone.gr:443/cs/forums/thread/63586.aspx</link><pubDate>Wed, 23 Feb 2011 18:24:08 GMT</pubDate><guid isPermaLink="false">2622095e-976c-431a-859e-16783ec7ecd7:63586</guid><dc:creator>dimos.homatas</dc:creator><slash:comments>0</slash:comments><comments>https://www.dotnetzone.gr:443/cs/forums/thread/63586.aspx</comments><wfw:commentRss>https://www.dotnetzone.gr:443/cs/forums/commentrss.aspx?SectionID=13&amp;PostID=63586</wfw:commentRss><description>Παναγιώτη, αν κατάλαβα καλά, εννοείς να το πάρει σε byte[]; Και πως θα το γράψει χωρίς stream?!?!?&lt;br&gt;&lt;div&gt;&lt;br&gt;&lt;/div&gt;&lt;div&gt;&lt;br&gt;&lt;/div&gt;</description></item><item><title>Απ: αποστολή PDF απο Web service</title><link>https://www.dotnetzone.gr:443/cs/forums/thread/63582.aspx</link><pubDate>Wed, 23 Feb 2011 18:03:55 GMT</pubDate><guid isPermaLink="false">2622095e-976c-431a-859e-16783ec7ecd7:63582</guid><dc:creator>Παναγιώτης Καναβός</dc:creator><slash:comments>0</slash:comments><comments>https://www.dotnetzone.gr:443/cs/forums/thread/63582.aspx</comments><wfw:commentRss>https://www.dotnetzone.gr:443/cs/forums/commentrss.aspx?SectionID=13&amp;PostID=63582</wfw:commentRss><description>&lt;P&gt;Δεν θα συμφωνήσω. Η μεταφορά base64 αντί για binary&amp;nbsp;έχει και το κόστος τις μεταφοράς αλλά και το κόστος της μετατροπής. Αλλά και τα streams απαιτούν προσοχή&amp;nbsp;για να μην βρεθείς να κρατάς 2&amp;nbsp;ή 3 αντίγραφα του ίδιου&amp;nbsp;αρχείου στη μνήμη.&lt;/P&gt;
&lt;P&gt;&amp;nbsp;Γενικά, το μόνο που χρειάζεται είναι από μία σελίδα aspx να δημιουργείς δυναμικά το PDF (ή αν το διαβάζεις αν ήδη υπάρχει) και να επιστρέψεις το περιεχόμενο του αρχείου βάζοντας τα σωστά content-headers. Ένα παράδειγμα:&lt;/P&gt;&lt;PRE&gt;&lt;SPAN style="BACKGROUND-COLOR:transparent;FONT-FAMILY:Courier New;COLOR:black;FONT-SIZE:11px;FONT-WEIGHT:normal;"&gt;response.ContentType &lt;SPAN style="BACKGROUND-COLOR:transparent;FONT-FAMILY:Courier New;COLOR:red;FONT-SIZE:11px;FONT-WEIGHT:normal;"&gt;=&lt;/SPAN&gt; &lt;SPAN style="BACKGROUND-COLOR:#e4e4e4;FONT-FAMILY:Courier New;COLOR:#666666;FONT-SIZE:11px;FONT-WEIGHT:normal;"&gt;"application/octet-stream"&lt;/SPAN&gt;; 
response.AppendHeader(&lt;SPAN style="BACKGROUND-COLOR:#e4e4e4;FONT-FAMILY:Courier New;COLOR:#666666;FONT-SIZE:11px;FONT-WEIGHT:normal;"&gt;"Content-Disposition"&lt;/SPAN&gt;, &lt;SPAN style="BACKGROUND-COLOR:#e4e4e4;FONT-FAMILY:Courier New;COLOR:#666666;FONT-SIZE:11px;FONT-WEIGHT:normal;"&gt;"attachment; filename="&lt;/SPAN&gt; &lt;SPAN style="BACKGROUND-COLOR:transparent;FONT-FAMILY:Courier New;COLOR:red;FONT-SIZE:11px;FONT-WEIGHT:normal;"&gt;+&lt;/SPAN&gt; filename); response.BinaryWrite(pdfBytes); 
response.End(); &lt;/SPAN&gt;&lt;/PRE&gt;
&lt;P&gt;Με τον τρόπο αυτό θα πάρεις το αρχείο σου ως binary χωρίς παρατράγουδα.&lt;/P&gt;
&lt;P&gt;Αλλά ακόμα και αν θέλεις να παραμείνεις σε web service, δεν υπάρχει να πάς μέσω Βερολίνου με streams. Η &lt;A href="http://msdn.microsoft.com/en-us/library/system.convert.frombase64string(VS.85).aspx"&gt;Convert.FromBase64String&lt;/A&gt; αυτή τη δουλειά κάνει.&lt;/P&gt;
&lt;P&gt;Αυτό που με παραξενεύει όμως είναι ότι παίρνεις Base64 αντί για byte array. Αν το web method έχει οριστεί να επιστρέφει byte array, έπρεπε να διαβάζεις byte array ακόμα και να το ενδιάμεσο είναι Base64. Σε τί είναι δημιουργημένο το web service? Ποιό είναι το signature της μεθόδου? Πως το καλείς? Ποιός είναι ο τύπος που σου επιστρέφει το proxy? Αν έδινες και λίγο wsdl ίσως να ξεκαθάριζε το πράγμα.&lt;/P&gt;</description></item><item><title>Απ: αποστολή PDF απο Web service</title><link>https://www.dotnetzone.gr:443/cs/forums/thread/63576.aspx</link><pubDate>Wed, 23 Feb 2011 17:46:49 GMT</pubDate><guid isPermaLink="false">2622095e-976c-431a-859e-16783ec7ecd7:63576</guid><dc:creator>dimos.homatas</dc:creator><slash:comments>0</slash:comments><comments>https://www.dotnetzone.gr:443/cs/forums/thread/63576.aspx</comments><wfw:commentRss>https://www.dotnetzone.gr:443/cs/forums/commentrss.aspx?SectionID=13&amp;PostID=63576</wfw:commentRss><description>&lt;div&gt;Δύο βήματα&lt;/div&gt;&lt;div&gt;&lt;br&gt;&lt;/div&gt;Byte array -&amp;gt; Stream&lt;div&gt;Stream -&amp;gt; File&lt;/div&gt;&lt;div&gt;&lt;br&gt;&lt;/div&gt;&lt;div&gt;Και νομίζω ότι έχεις τον σωστότερο και οικονομικότερο τρόπο. Με GPRS συνδέεσαι; Σκέψου και το ενδεχόμενο της συμπίεσης, μιας και το GPRS δεν είναι και ότι πιο γρήγορο.&lt;/div&gt;</description></item><item><title>Απ: αποστολή PDF απο Web service</title><link>https://www.dotnetzone.gr:443/cs/forums/thread/63574.aspx</link><pubDate>Wed, 23 Feb 2011 17:41:16 GMT</pubDate><guid isPermaLink="false">2622095e-976c-431a-859e-16783ec7ecd7:63574</guid><dc:creator>DaltonGR</dc:creator><slash:comments>0</slash:comments><comments>https://www.dotnetzone.gr:443/cs/forums/thread/63574.aspx</comments><wfw:commentRss>https://www.dotnetzone.gr:443/cs/forums/commentrss.aspx?SectionID=13&amp;PostID=63574</wfw:commentRss><description>Θα μπορεί να το λάβει Μοbile εφαρμογή. Δέν μπορώ να το βάλω σε url και να κατεβαίνει απο εκεί, πολύ πιο εύκολο, αλλά θα το ζητάει απο ένα webservice με το όνομα του αρχείου και το ίδιο web service θα το επιστρέφει. Αυτό που βρήκα είναι το web service να γυρνάει byte array σε base64 μορφή. Αυτό που δεν έχω βρεί είναι πώς απο base64 θα το μετατρέπω πάλι σε PDF αρχείο..&lt;br&gt;</description></item><item><title>Απ: αποστολή PDF απο Web service</title><link>https://www.dotnetzone.gr:443/cs/forums/thread/63572.aspx</link><pubDate>Wed, 23 Feb 2011 17:33:55 GMT</pubDate><guid isPermaLink="false">2622095e-976c-431a-859e-16783ec7ecd7:63572</guid><dc:creator>dimos.homatas</dc:creator><slash:comments>0</slash:comments><comments>https://www.dotnetzone.gr:443/cs/forums/thread/63572.aspx</comments><wfw:commentRss>https://www.dotnetzone.gr:443/cs/forums/commentrss.aspx?SectionID=13&amp;PostID=63572</wfw:commentRss><description>Αυτός που θα το λάβει, από που θα το πάρει; Έχεις client εφαρμογή;&lt;div&gt;&lt;br&gt;&lt;/div&gt;&lt;div&gt;Βασικά, γιατί δεν το βάζεις σε ένα url και απλά να το κατεβάσει;&lt;/div&gt;</description></item><item><title>αποστολή PDF απο Web service</title><link>https://www.dotnetzone.gr:443/cs/forums/thread/63570.aspx</link><pubDate>Wed, 23 Feb 2011 17:08:44 GMT</pubDate><guid isPermaLink="false">2622095e-976c-431a-859e-16783ec7ecd7:63570</guid><dc:creator>DaltonGR</dc:creator><slash:comments>0</slash:comments><comments>https://www.dotnetzone.gr:443/cs/forums/thread/63570.aspx</comments><wfw:commentRss>https://www.dotnetzone.gr:443/cs/forums/commentrss.aspx?SectionID=13&amp;PostID=63570</wfw:commentRss><description>Καλημέρα,&lt;br&gt;Μπορεί ένα web service να στείλει ένα αρχείο PDF? Μπορώ να στείλω αρχείο εικόνας, αλλά αρχείο PDF πώς μπορεί να σταλεί και να δημιουργηθεί ξανά μετά στον παραλήπτη;&lt;br&gt;&lt;br&gt;Ευχαριστώ εκ των προτέρων.&lt;br&gt;</description></item></channel></rss>