آژانس هواپیماییexchanging

اجرای فایل exe و خروجی گرفتن از آن؟

شروع موضوع توسط متالیک ‏14 فوریه 2008 در انجمن PHP

  1. متالیک

    متالیک Registered User

    تاریخ عضویت:
    ‏31 مارس 2007
    نوشته ها:
    1,947
    تشکر شده:
    60
    سلام
    من می خوام یک صفحه ی آپلود درست کنم که کاربر یک فایل مثلا file.ext رو ارسال کنه. (خوب اینجاش که مشکلی نداره و مهم نیست)
    بعد از این که فایل آپلود شد فایل توسط یک فایل exe مثلا compile.exe اجرا بشه و فایل خروجی از آن برای دانلود لینک بشه.
    مثلا شخص فایل رو آپلود کرد، عبارت compile file.ext اجرا بشه و بعد از اجرای این دستور یک فایل دیگه توسط فایل compile مثلا file.ent ساخته می شه، لینک دانلود فایل file.ent نمایش داده بشه.
    نمی دونم درست تونستم منظورم رو بگم یا نه؟
    شما فقط راهنمایی که می تونید بکنید اینه که بگید چه طور می تونم دستور compile file.ext رو با php اجرا کنم؟
    با تشکر
     
  2. hba

    hba کاربر فعال صفحات داینامیک کاربر فعال

    تاریخ عضویت:
    ‏8 آگوست 2004
    نوشته ها:
    1,511
    تشکر شده:
    1
    محل سکونت:
    تهران-ونک-php-mysql
    از دستورات exec اینها استفاده کن در php.net بزن
     
  3. Mehdi

    Mehdi مدیر بازنشسته

    تاریخ عضویت:
    ‏1 آگوست 2004
    نوشته ها:
    5,569
    تشکر شده:
    49
    محل سکونت:
    Anywhere
    system
    exec
     
  4. متالیک

    متالیک Registered User

    تاریخ عضویت:
    ‏31 مارس 2007
    نوشته ها:
    1,947
    تشکر شده:
    60
    تشکر
    داخل دستور exec باید از چه دستوراتی استفاده کنم؟ لینوکس یا ویندوز؟
    مثلا این دستور کار می کنه؟
    PHP:
    exec("compile file.ext")
     
  5. hossein_asp

    hossein_asp کاربر تازه وارد

    تاریخ عضویت:
    ‏31 مارس 2005
    نوشته ها:
    637
    تشکر شده:
    0
    محل سکونت:
    جایی که خدا نباشد
    فکر کنم بعضی دستورات تو لینکو س کار میکه بعضی هام اجرا میشه رو ویندوز اما اشتباه.
     
  6. متالیک

    متالیک Registered User

    تاریخ عضویت:
    ‏31 مارس 2007
    نوشته ها:
    1,947
    تشکر شده:
    60
  7. ODE112

    ODE112 کاربر قدیمی پرشین تولز

    تاریخ عضویت:
    ‏24 مارس 2006
    نوشته ها:
    1,380
    تشکر شده:
    1,272
    محل سکونت:
    aquarium
    ببین من ffmpeg.exe رو برات مثال میزنم که سایت youtube و سایت های دیگه باهاش فرمت ویدیوهایی که کاربرا آپلود میکنن رو به flv آنلاین تبدیل میکنه.

    فایل ffmpeg.exe مثلا تو درایور C سرور ویندوزت هست خب!

    تو Command promt ویندوز بهش چجوری دستور میدی!

    کد:
    c:/ffmpeg -i jaxon.mpg -lame output.flv
    
    با تو لینوکس تو ترمنیال برای ورژن لینوکسش همینو مینویسی!

    حالا تو فایل php هم به همون فرمت مینویسی دیگه!
    کد:
    exec("ffmpeg -i jaxon.mpg -lame output.flv")
    
    ولی بهت خروجی نمیده که بدونی که دستور با موفقیت انجام شد یا خیر!

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

    بجای jaxon.mpg آدرس فایلی که آپلود شده رو میذارن و بجای فایل output.flv هم فولدری که بعدا لینک دانلودشو به کاربر میدن!

    نمیدونم اصلا متوجه شدی چی میخواستم بگم!!!
     
  8. متالیک

    متالیک Registered User

    تاریخ عضویت:
    ‏31 مارس 2007
    نوشته ها:
    1,947
    تشکر شده:
    60
    با تشکر فراوان
    دقیقا متوجه شدم. عالی بود.

    برای خروجی گرفتن از این که دستور با موفقیت اجرا شده یا نه می شه این کار رو کرد:
    PHP:
    if (exec("ffmpeg -i jaxon.mpg -lame output.flv"))  {
      echo 
    "OK";
    } else {
     echo 
    "Error";
    }
     
  9. hossein_asp

    hossein_asp کاربر تازه وارد

    تاریخ عضویت:
    ‏31 مارس 2005
    نوشته ها:
    637
    تشکر شده:
    0
    محل سکونت:
    جایی که خدا نباشد
    یعنی تولید بعضی آرشیو ها و دامپ در مای اسکیول البته تجربه منه شایدم درست نباشه.
     
  10. ODE112

    ODE112 کاربر قدیمی پرشین تولز

    تاریخ عضویت:
    ‏24 مارس 2006
    نوشته ها:
    1,380
    تشکر شده:
    1,272
    محل سکونت:
    aquarium
    اوه منظـــــورم این نبود! منظورم جوابی بود که فایل exe میده... پس من اشتباه منظور شما رو از خروجی متوجه شدم!

    مثلا وقتی دستور اشتباه به فایل exe بدید و فایل exe بهتون پیام بده دیگه اونو نمیبینید!

    مثلا فایل exe در جواب اجرای دستوری که بهش دادید میگه این فرمت از فایل قابل قبول نیست یا مثلا اطلاعات دریافتی اشتباه هست!
    اینا رو تو Command promt و ترمینال لینوکس میشه دید ولی php دیگه نمیتونه نتیجه رو هم نشون بده!!!
     
  11. hossein_asp

    hossein_asp کاربر تازه وارد

    تاریخ عضویت:
    ‏31 مارس 2005
    نوشته ها:
    637
    تشکر شده:
    0
    محل سکونت:
    جایی که خدا نباشد
    من یه کم احساس میکنم لقمه رو دارید دور سرتون می جرخونید یا اینکه من متوجه منظورتون نشدم؟
    برای تولید لینک دانلود چرا باید این همه درد سر بکشید؟
     
  12. ODE112

    ODE112 کاربر قدیمی پرشین تولز

    تاریخ عضویت:
    ‏24 مارس 2006
    نوشته ها:
    1,380
    تشکر شده:
    1,272
    محل سکونت:
    aquarium
    منظورش این بود که فرضـــــا کــــــــــاربر a میاد توی سایت و یک فایل با فرمت mp3 آپلود میکنه روی سایت!

    یک برنامه مبدل روی سایت این فایل به فرمت .mp4 یا ogg مثلا تبدیل میکنه!

    و لینک دانلود فایل جدیدی که ساخته شده به کاربر داده میشه!



    ( یه عملیاتی روی فایل انجام میشه و اونو تغییراتی میده )!
     
  13. avajang.com .leftavajang.com.right
  14. متالیک

    متالیک Registered User

    تاریخ عضویت:
    ‏31 مارس 2007
    نوشته ها:
    1,947
    تشکر شده:
    60
    منم می دونم منظور شما اون نبود! بله خوب مسلمه فایل exe که پیام نمی ده. فقط برای این که مطمئن بشم دستور با php اجرا شده می تونم یه if بزارم ولی این که حتما convert انجام بشه یا نه فکر نمی کنم بشه کاری کرد.

    آقا حسین عزیز تولید لینک که کاری نداره! مهم تولید فایل جدیده، فایل که درست شد راحت می شه لینک داد.

    دقیقا منظور من هم همین بود!

    +================+

    یک سوال دیگه؟
    فرضا من فایل convert.exe رو آپلود کردم. (مثلا اینجا: /home/www/files/convert.exe که لینکش می شه این: http://www.mydomain.com/files/convert) حالا چه کار کنم دیگران نتونند این فایل رو دانلود کنند؟
    چون اگه آدرسش رویدا کنند راحت دانلود می کنند. من می خوام فایل در دسترس دیگران نباشه و فقط سرور بتونه ازش استفاده کنه؟
     
  15. متالیک

    متالیک Registered User

    تاریخ عضویت:
    ‏31 مارس 2007
    نوشته ها:
    1,947
    تشکر شده:
    60
  16. ODE112

    ODE112 کاربر قدیمی پرشین تولز

    تاریخ عضویت:
    ‏24 مارس 2006
    نوشته ها:
    1,380
    تشکر شده:
    1,272
    محل سکونت:
    aquarium
    من دیروز میخواستم بنویسم گفتم شاید منظورت این نباشه! خب شما میتونی پرمیشن Read رو برای کاربرای معمولی ببندی! همونجایی هست که مینویسی 777 و اینا... تیک خواندن رو برای یوزر بردار

    یا اینکه کار بهتر اینکه! اصلا تو فولدر htdocs نذاریش!!! بیرون از این فولدر بذاریدش!