का उपयोग कर सर्वर पर फ़ाइल अपलोड करने के लिए कैसे मैं एक ऐसा फॉर्म लिखने की कोशिश कर रहा हूं जो उपयोगकर्ताओं को मेरे सर्वर पर फ़ाइल अपलोड करने की अनुमति दे। मैंने देखा कि यसोड फ़ाइल कार्यक्षमता के लिए फ़ाइल एफ़ॉर्मरैक का उपयोग करता है लेकिन इसे काम करने में असमर्थ था, संकलन त्रुटियों में चल रहा था, जिसमें से नवीनतम था: "कोई उदाहरण नहीं (रेंडर मैसेज माईसाइट टी)" किसी भी प्रकार का उपयोग करने के लिए उदाहरण के लिए कोई उदाहरण नीचे इसकी अत्यधिक सराहना की जाएगी। धन्यवाद, उरीयसोड
यसोड
उत्तर
अपडेट 13 सितम्बर 2012: एक अधिकारी फ़ाइल here
अपलोड करने समारोह fileAFormReq
पर Googling के लिए मदद पृष्ठ बनाए रखा
नहीं है मुझे इस example दे दी है।
मैंने केवल प्रासंगिक भागों के साथ इसका एक न्यूनतम संस्करण बनाया है।
{-# LANGUAGE OverloadedStrings #-}
{-# LANGUAGE QuasiQuotes, TypeFamilies, TemplateHaskell, MultiParamTypeClasses #-}
import Yesod.Core
import Yesod.Form
import Yesod.Form.MassInput
import Control.Applicative
import Data.Text (Text, pack)
import Network.Wai.Handler.Warp (run)
import Data.Time (utctDay, getCurrentTime)
import qualified Data.Text as T
import Control.Monad.IO.Class (liftIO)
mkYesod "HelloForms" [parseRoutes|
/file FileR GET POST
|]
data HelloForms = HelloForms
instance RenderMessage HelloForms FormMessage where
renderMessage _ _ = defaultFormMessage
instance Yesod HelloForms where
approot _ = ""
main = toWaiApp HelloForms >>= run 3000
fileForm = renderTable $ pure (,)
<*> fileAFormReq "Required file"
<*> fileAFormOpt "Optional file"
getFileR = do
((res, form), enctype) <- runFormPost fileForm
defaultLayout [whamlet|
<p>Result: #{show res}
<form method=post enctype=#{enctype}>
<table>
^{form}
<tr>
<td>
<input type=submit>
|]
postFileR = getFileR
इस runhaskell
और फिर आपके ब्राउज़र में http://localhost:3000/file
जाएँ।
उम्मीद है कि इससे मदद मिलती है। :)
संपादित करें:
ओह प्रतीक्षा करें, यह स्पष्ट है कि तुम क्या याद आ रही रहे हैं। चूंकि संकलन त्रुटि ने अभी कहा है, आप अपने फाउंडेशन के लिए RenderMessage
उदाहरण खो रहे हैं।
मुझे पता है कि i18n के हालिया प्रयासों ने फॉर्म-पैकेज को थोड़ा बदल दिया है। यदि आप yesod के नवीनतम संस्करण का उपयोग कर रहे हैं, तो this देखें।
मैंने चिपकाया कोड yesod-forms
पैकेज के पुराने गैर-i18n (डिफ़ॉल्ट साधन अंग्रेजी) संस्करण का उपयोग करता है।
धन्यवाद। गायब उदाहरण त्रुटि वास्तव में फ़ाइल का उपयोग नहीं कर रहा है, ठीक से फ़ाइल का उपयोग नहीं कर रहा है (ghc में परिणामस्वरूप यह एक और रेंडर मैसेज उदाहरण है और न केवल उस व्यक्ति को , जो बहुत भ्रमित था)। वैसे भी यह पूरी तरह से काम करता है, तो धन्यवाद! –
- 1. यसोड
- 2. यसोड
- 3. यसोड
- 4. होस्टनाम-स्वतंत्र यसोड एप्लिकेशन
- 5. यसोड डिस्काउंट कैस्केड
- 6. हास्केल और यसोड
- 7. यसोड: एक आईडी
- 8. यसोड में एकाधिक एथ?
- 9. यसोड डेवेल सर्वर केवल आईपीवी 6
- 10. यसोड एक साइट के लिए एकाधिक निरंतर बैकएंड
- 11. कुछ यसोड उदाहरणों की कोशिश करते समय त्रुटि संकलित करें
- 12. यसोड में स्थैतिक फ़ाइल से लिंक करें जिसमें हैस्केल पहचानकर्ता
- 13. मैं यसोड में स्थिर फाइलों के कैशिंग को कैसे रोकूं?
- 14. यसोड को तैनात करने का अनुशंसित तरीका क्या है?
- 15. यसोड और डार्क्स लाइब्रेरी का उपयोग करते समय डुप्लिकेट प्रतीक त्रुटि के आसपास कैसे काम करें?
- 16. यसोड में ToJSON/FromJSON के लगातार प्रकार के उदाहरण क्यों नहीं हैं?
- 17. सीजीआई
- 18. हास्केल प्रकार समानार्थी
- 19. क्या कोई और मूल, अधिक कार्यात्मक हास्केल वेब-फ्रेमवर्क हैं?
- 20. हैस्केल के लिए एक साधारण रंग सक्षम लॉगर उपलब्ध है?
- 21. क्या Haskell में HXT पर टेक्स्ट या बाइटस्ट्रिंग का उपयोग करना संभव है?
- 22. क्या मेरे पास इनपुट फॉर्म में फ़ाइल फ़ील्ड हो सकता है?
- 23. कैबल इंस्टॉल को सी लाइब्रेरी की आवश्यकता है: विंडोज
- 24. मैं डिफॉल्ट के अलावा लेआउट को कैसे कार्यान्वित कर सकता हूं
- 25. पेज प्रवाह
- 26. हैमलेट
- 27. कैबल एकाधिक निष्पादन योग्य
- 28. डीबी
- 29. Yesod
- 30. जीएचसी कैबल इंस्टॉल हैमलेट एक अस्पष्ट त्रुटि
हाय उरी, बस मामले में, मैंने एक पूर्ण फ़ाइल अपलोड लिखने के लिए एक छोटी ब्लॉग पोस्ट लिखी है (अपलोड की गई फाइलों की सेवा करना, उन्हें यसोड में संदर्भित करना और उन्हें हटाना) https://ersocon.net/blog/2017/ 2/18/फ़ाइल-अपलोड-के साथ-yesod – Alebon