رفتن به مطلب

آموزش دانلود کردن عکس و فایل و ذخیره آن


کسری نعمتی مهمان

ارسال‌های توصیه شده

کسری نعمتی مهمان

سلام دوستان

خب اول دانلود عکس رو آموزش میدم.برای این کار باید کتابخوانه httpUtils2 رو داشته باشید

Sub Globals

Dim job As HttpJob
Private ImageView1 As ImageView
End Sub

imageview رو تعریف کردم که عکسی که دانلود شد رو توش نمایش بدیم

Sub Activity_Create(FirstTime As Boolean)

Activity.LoadLayout("test")
If FirstTime = True 
 job.Initialize("EsmeJob",Me)
job.Download("www.basic4android.org/axeKa3ra")
End If 
End Sub

خب این Esme job چیز خاصی نیست حالت EventName نداره فقط یه اسم واسش گذاشتیم

تو قسمت job.download هم لینک اون عکس رو میزاریم که دانلود بشه

Sub jobdone
If job.Success 
ImageView1.SetBackgroundImage(job.GetBitmap)
Else 
Log("Error: " & job.ErrorMessage)
  End If
  job.Release
End Sub

خب تو خط اول گفتیم که اگه دانلود با موفقیت انجام شد پس زمینه imageView ما بشه همین عکسی که دانلود شده

بعد از else هم که دیگه معلومه اگه دانلود نشد یه پیام ارور که پیش فرض خود کتابخونست رو نمایش میده

خب تا اینجا دانلود عکس رو توضیح دادم.حالا آموزش دانلود فایل و نحوه ذخیره کردنش.

ُsub activity.create مثل همون قبلیه میریم سراغ sub jobDone

Sub JobDone(job As HttpJob)
  If job.Success Then
    Dim out As OutputStream = File.OpenOutput(File.DirRootExternal, "filename.dat", False)
    File.Copy2(job.GetInputStream, out)
    out.Close '<------ very important
  Else
    Log("Error: " & job.ErrorMessage)
  End If
  job.Release
End Sub

تو خط اول گفتیم که اگه دانلود با موقیت انجام شد

خط دوم : DirRootExternal که با این ما فایل رو تو حافظه خارجی ذخیره میکنیم و اسم پوشه تشکیل شده ( پوشه برای ذخیره فایل دانلود شده ) همون "filename.dat" هست که به دلخواه میتونین هر اسمی که خواستین براش بزارین

و اون قسمت که out.close هست رو حتما باید بنویسین وگرنه به مشکل بر میخورین

امیدوارم تونسته باشم خوب آموزش بدم

لینک ارسال
به اشتراک گذاری در سایت های دیگر

امیدوار باش چون کارت درسته

مرسی اگر در مورد روند دانلود هم بتونی آموزش بذاری

ProgressBar منظورمه

لینک ارسال
به اشتراک گذاری در سایت های دیگر

شما میتونی توی رویداد Progress Chnage اگه داره چون چک نکردم و بیسیک در اختیار ندارم و مبتونی مقدار یک ProgressBar رو برابر کنی با آرگومان مربوط به رویداد مورد نظر

راهنمایی بود و جواب کامل و جامعی نیست

لینک ارسال
به اشتراک گذاری در سایت های دیگر

سلام و درود

البته روش ProgressBar معمولا واسه دانلود فایل هایی که حجم تقریبا رو به زیاد یا زیادی دارن استفاده میشه

نمونه سورس رو پیدا کردم و براتون پیوست کردم

فرصت سورس کد نوشتن و آموزش رو ندارم متاسفانه.

موفق باشید

SS-2013-06-13_17.34.35.png

LargeFileDownload.rar

لینک ارسال
به اشتراک گذاری در سایت های دیگر

  • 2 ماه بعد...

این همه کد و لایوت واسه یه نمایش درصد دانلود ؟؟؟؟؟؟؟؟؟؟؟؟؟؟؟؟؟؟!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!

راه ساده تری نداره ؟؟؟؟؟؟؟؟؟؟؟؟؟؟؟؟

*اشک کوچک**اشک کوچک**اشک کوچک*

لینک ارسال
به اشتراک گذاری در سایت های دیگر

  • 4 هفته بعد...

من از لینک مستقیم استفاده میکنم تو برنامه هام. یعنی تو یکیشون که کاربر باید فابلی رو دانلود میکرد توضییح داده بودم که دانلود منیجر رو گوشی نصب باشه. به همین راحتی!! هم کار شما سبک تره و هم دانلود منیجر حرفه ای تر. خودم به شخصه واسه یکی از ربرنامه های صوتی ازش استفاده کردم .*خنده*

لینک ارسال
به اشتراک گذاری در سایت های دیگر

  • 3 ماه بعد...
می شه راهنمایی کنید ؟؟؟ بخش دانلود و نمایش عکس ارور می ده .

دوست عزیز از شما بعیده . بعد از 216 پست هنوز سوال خودتون رو درست مطرح نکردید

وقتی میگید خطا میده فکر کنم باید بگید چه خطایی هم میده. البته فکر کنم *herher*

لینک ارسال
به اشتراک گذاری در سایت های دیگر

دوست عزیز از شما بعیده . بعد از 216 پست هنوز سوال خودتون رو درست مطرح نکردید

وقتی میگید خطا میده فکر کنم باید بگید چه خطایی هم میده. البته فکر کنم *herher*

ببخشید .

برنامه Run می شه ...

اما بعد از چند ثانیه که اجرا شد روی املاتور youwave خطا می ده !!:

2015_05_22_170959.png

این هم از کد هام :

Sub Globals
   Private ImageView1 As ImageView
   Dim baresh As HttpJob
End Sub

Sub Activity_Create(FirstTime As Boolean)
   Activity.LoadLayout("main")

   If FirstTime = True Then
   baresh.Initialize("d",Me)
   baresh.Download("http://www.jetplan.com/weather/data/maps/mesfcpc24.gif")
   End If
End Sub
Sub jobdone
   If baresh.Success Then
   ImageView1.SetBackgroundImage(baresh.GetBitmap)
   Else 
   Log("Error: " & baresh.ErrorMessage)
   End If
   baresh.Release
End Sub

لینک ارسال
به اشتراک گذاری در سایت های دیگر

  • 5 هفته بعد...

آقای ایزدی یا دوستان دیگه! کد زیر رو برای جاب دان نوشتم ولی توی خط openoutput ارور میده و میگه no such file or directory

	Sub jobdone(job As HttpJob)
	If job.Success=True Then
		If File.IsDirectory(File.DirRootExternal,"Rahrovan/Sound/plt/"&code) Then
			File.MakeDir(File.DirRootExternal,"Rahrovan/Sound/plt/"&code)
		End If
		
		Dim ins As InputStream
		Dim outs As OutputStream
		ins=job.GetInputStream
		outs=File.OpenOutput(File.DirRootExternal,"Rahrovan/Sound/plt/"&code&"/m"&z&".mp3",False)
		File.Copy2(ins,outs)
		ins.Close
		outs.Close
		Log("Job completed: " & http.Success)
		ToastMessageShow("فایل با موفقیت ذخیره و آماده اجرا می‌باشد...",True)
	Else
'		ToastMessageShow("فایل مورد نظر یافت نشد!",False)'
		Log("Error: " & http.ErrorMessage)
    End If
	    http.Release
End Sub

لینک ارسال
به اشتراک گذاری در سایت های دیگر

عزیزم اول باید چک کنی ببینی این پوشه ها ساخته و یا موجود هستن و بعد از این آدرس استفاده کنی

لینک ارسال
به اشتراک گذاری در سایت های دیگر

عزیزم اول باید چک کنی ببینی این پوشه ها ساخته و یا موجود هستن و بعد از این آدرس استفاده کنی

 

سلام  وممنون از پاسختون. اگه دقت بکنین من اول کدم همین چک رو انجام داده م!

ولی مشکل فهمیدم از کجاست!! یک بی دقتی! دقیقا توی همون کد چک کردن دایرکتوری، false رو نذاشته بودم

یعنی if file.exists( , )=false قسمت قرمز رنگ رو نداشته بودم!!

الان شکر خدا دانلود انجام میشه و پوشه هم ساخته میشه

ولی به یه مشکل عجیب برخوردم!!

من برنامه م به این شکله که مثلا 10 تا متن دارم که کاربر از لیست وارد هر کدوم از این متن ها میشه و هر متن هم یه l.tag مخصوص خودش رو داره که داخل متغیر z ذخیره میشه.

من فایل های روی سرور رو طبق همین خاطرات نامگذاری کرده م. یعنی اگه کاربر، داخل متن شماره 3 روی لینک دانلود کلیک کنه، فایل شماره 3 رو از سرور دانلود بکنه.

link1="http://bayanbox.ir/download/8384160606485472633/m"&z&".mp3"

مشکل اینجاست: الان روی سرور یک فایل بیشتر ندارم و باشماره 10 ذخیره ش کردم و طبیعتا باید موقعی که متغیر z برابر 10 میشه اون فایل دانلود بشه

و در بقیه متن ها (با شماره غیر از 10) پیام خطا برای دانلود باید داده بشه. ولی در کمال تعجب داخل هر متنی باشم با z های مختلف،

همون فایل با شماره 10 دانلود میشه و با شماره متنی که داخلش هستم ذخیره میکنه. حتی آدرس هم که log میکنم مثلا شماره 3 هستش و

باید خطا بده. ولی اینطور نیست و همون فایل شماره 10 رو دانلود میکنه و با شماره 3 ذخیره میکنه!! (من قبل از استفاده از

ماژول های largefiledownload که از کتابخانه httputils2 استفاده می کردم، به درستی این اتفاق برام میفتاد.

یعنی در متنهای غیر از شماره 10 پیام خطا دریافت میکردم. ولی بعد از استفاده از این ماژول ها به این مشکل خوردم.)

کسی میتونه راهنمایی کنه؟

لینک ارسال
به اشتراک گذاری در سایت های دیگر

سلام  وممنون از پاسختون. اگه دقت بکنین من اول کدم همین چک رو انجام داده م!

ولی مشکل فهمیدم از کجاست!! یک بی دقتی! دقیقا توی همون کد چک کردن دایرکتوری، false رو نذاشته بودم

یعنی if file.exists( , )=false قسمت قرمز رنگ رو نداشته بودم!!

الان شکر خدا دانلود انجام میشه و پوشه هم ساخته میشه

ولی به یه مشکل عجیب برخوردم!!

من برنامه م به این شکله که مثلا 10 تا متن دارم که کاربر از لیست وارد هر کدوم از این متن ها میشه و هر متن هم یه l.tag مخصوص خودش رو داره که داخل متغیر z ذخیره میشه.

من فایل های روی سرور رو طبق همین خاطرات نامگذاری کرده م. یعنی اگه کاربر، داخل متن شماره 3 روی لینک دانلود کلیک کنه، فایل شماره 3 رو از سرور دانلود بکنه.

link1="http://bayanbox.ir/download/8384160606485472633/m"&z&".mp3"

مشکل اینجاست: الان روی سرور یک فایل بیشتر ندارم و باشماره 10 ذخیره ش کردم و طبیعتا باید موقعی که متغیر z برابر 10 میشه اون فایل دانلود بشه

و در بقیه متن ها (با شماره غیر از 10) پیام خطا برای دانلود باید داده بشه. ولی در کمال تعجب داخل هر متنی باشم با z های مختلف،

همون فایل با شماره 10 دانلود میشه و با شماره متنی که داخلش هستم ذخیره میکنه. حتی آدرس هم که log میکنم مثلا شماره 3 هستش و

باید خطا بده. ولی اینطور نیست و همون فایل شماره 10 رو دانلود میکنه و با شماره 3 ذخیره میکنه!! (من قبل از استفاده از

ماژول های largefiledownload که از کتابخانه httputils2 استفاده می کردم، به درستی این اتفاق برام میفتاد.

یعنی در متنهای غیر از شماره 10 پیام خطا دریافت میکردم. ولی بعد از استفاده از این ماژول ها به این مشکل خوردم.)

کسی میتونه راهنمایی کنه؟

اینطور که من می فهمم لینک های دانلود "بیان" تمایزش توی همون کد داخل آدرس هست و نام فایل خیلی اهمیتی نداره!!

لینک ارسال
به اشتراک گذاری در سایت های دیگر

  • 3 هفته بعد...

سلام من با یه دکمه لینکارو از دیتابیس میگیرم میارم تو مولتی پنل وبا تگ دانلود میکنم ومیخوام بااسمی که تو دیتابیس تو ستون name نوشتم ذخیره اش کنم وطبق روشی که شما گفتید عمل کردم ولی ارور میده؛ این کدهام هستن ببین کجاش اشتباه نوشتم ؟؟؟؟ممنون

Sub Process_Globals
Dim sql2 As SQL
End Sub


Sub Globals
Private Panel1 As Panel
Private ScrollView2 As ScrollView
Dim Stopint As Int=5%y
Private img1 As ImageView

Private Buttondownload As Button

Dim htt As HttpJob
Dim cur1 As Cursor
Private ps As Panel
Private p1 As Panel
End Sub





(Sub Activity_Create(FirstTime As Boolean
(ScrollView2.Initialize(2000dip
(p1.AddView(ScrollView2,0,0,100%x,100%y
("File.Copy(File.DirAssets,"sql1.db",File.DirInternal,"sql1.db
(sql2.Initialize(File.DirInternal,"sql1.db",False
("cur1=sql2.ExecQuery("SELECT * From tbltest WHERE id BETWEEN 1 AND 30
For i=0 To cur1.RowCount-1
cur1.Position=i
Dim ps As Panel
("ps.Initialize("ps
(ScrollView2.Panel.AddView(ps,0,Stopint,100%x,100%Y
Stopint=Stopint+150dip
("ps.LoadLayout("nn
                           Panel1.Tag=i 
If (i Mod 2)=1 Then 
Panel1.Color=Colors.Red 
Else 
Panel1.Color=Colors.Blue 
End If
("Buttondownload.tag = cur1.GetString("Logo
ScrollView2.Panel.Height=Stopint
Next
End Sub





(Sub JobDone (Job As HttpJob
ProgressDialogHide
If Job.Success=True Then
If File.IsDirectory(File.DirRootExternal,"myapp") = False Then
("File.MakeDir(File.DirRootExternal,"myapp
End If
Dim i1 As InputStream
Dim o1 As OutputStream
i1 = Job.GetInputStream
(o1 = File.OpenOutput(File.DirRootExternal & "/myapp",cur1.GetString("name"),False
(File.Copy2(i1,o1
i1.Close
o1.Close
ToastMessageShow("با موفقیت ذخیره شد",False)
End If
If Job.Success=False Then
        ToastMessageShow("اینترنت گوشی شما قطع میباشد!",True)
End If
  Job.Release
End Sub
_
Sub Buttondownload_Click
Dim izy As Button
izy = Sender
If File.Exists(File.DirRootExternal & "/myapp",cur1.GetString("name")) = False Then
(htt.Initialize("htt",Me
(htt.Download(izy.Tag
ProgressDialogShow("در حال دانلود")
End If
If File.Exists(File.DirRootExternal & "/myapp",cur1.GetString("name")) = True Then
 ToastMessageShow("فایل وجود دارد!",False)
End If 
End Sub

لینک ارسال
به اشتراک گذاری در سایت های دیگر

خطایی رو که میده قرار بدید(اسکرین)

لینک ارسال
به اشتراک گذاری در سایت های دیگر

اخطار مربوط به ادرس دهی فایل شما میشه

ادرس ذخیره رو بررسی کنید

لینک ارسال
به اشتراک گذاری در سایت های دیگر

سلام اینم اسکرین شات

 

اخطار مربوط به ادرس دهی فایل شما میشه

ادرس ذخیره رو بررسی کنید

 

سلام میدونم ولی اصلا ذخیره نمیشه که بخوام مسیرشو بررسی کنم؟؟؟؟؟

لینک ارسال
به اشتراک گذاری در سایت های دیگر

مجید آرتا در تاریخ 10 Jul 2015 - 11:58 صبح گفته استsnapback.png

خطایی رو که میده قرار بدید(اسکرین)

سلام اینم اسکرین شات

پیش نمایش پیوست ها
 
  • post-2328-0-81885500-1436667716_thumb.pn
لینک ارسال
به اشتراک گذاری در سایت های دیگر

بایگانی شده

این موضوع بایگانی و قفل شده و دیگر امکان ارسال پاسخ نیست.

  • کاربران آنلاین در این صفحه   0 کاربر

    • هیچ کاربر عضوی،در حال مشاهده این صفحه نیست.
×
×
  • اضافه کردن...