ฉันสามารถ "ลาก" ไฟล์ไปที่หน้าต่างโดยไม่มีตัวจัดการไฟล์


41

(ฉันใช้งานบน Linux Linux โดยใช้ i3 เป็น wm และ xterm ของฉันเป็นเทอร์มินัลอีมูเลเตอร์ของฉันแม้ว่าฉันจะไม่รู้ว่ามีสิ่งใดบ้างที่เกี่ยวข้อง)

บางครั้งเว็บไซต์ขอให้ฉันลากไฟล์ด้วยเมาส์จากเดสก์ท็อปของฉันไปที่หน้าต่างของอินเทอร์เน็ตเบราว์เซอร์ เกือบตลอดเวลามีทางเลือกอื่น แต่เมื่อเร็ว ๆ นี้ฉันพบสิ่งที่ฉันต้องการทำนั่นต้องใช้การลากและวาง น่าเสียดายที่ฉันไม่มีตัวจัดการไฟล์ ฉันสำรวจระบบไฟล์ของคอมพิวเตอร์ของฉันผ่านการทุบตีเท่านั้น

มีวิธีที่ฉันสามารถปลอมการกระทำลากและวางหรือไม่ ฉันจะบอกเบราว์เซอร์ของฉันว่า "ฉันเพิ่งส่งไฟล์นี้ไปยังคุณ" โดยไม่ต้องทำจริงเหรอ?

สถานการณ์กรณีที่เลวร้ายที่สุดฉันสามารถดาวน์โหลดตัวจัดการไฟล์กราฟิกโดยเฉพาะเพื่อวางไฟล์ลงในเว็บเบราว์เซอร์ของฉัน แต่ฉันต้องการหลีกเลี่ยงการแก้ปัญหานั้น


3
> ฉันจะบอกเบราว์เซอร์ของฉันว่า "ฉันเพิ่งส่งไฟล์นี้ไปยังคุณ" โดยไม่ได้ทำมันจริงหรือ? "ดูเหมือนจะเป็นคำถามที่ยอดเยี่ยมสำหรับชุมชนจาวาสคริปต์ใน stackexchange
jayhendren

ดูเพิ่มเติมที่www: กลไกหรืออนุพันธ์ ดูเหมือนว่าจะมี Perl และ Python ทางออกที่ดีกว่าดีกว่า!


1
dragbox ไม่มีอยู่อีกต่อไป โปรดเปลี่ยนคำตอบที่คุณยอมรับ
yukashima huksay

1
@yukashimahuksay เสร็จแล้วขอบคุณสำหรับหัวขึ้น
undergroundmonorail

คำตอบ:


19

ฉันมีปัญหาเดียวกันเมื่อสองสามเดือนก่อนและท้ายที่สุดก็แค่เขียนเครื่องมือที่จะทำเพื่อฉัน เมื่อฉันเห็นสิ่งนี้และพบว่ามีคนอื่นที่มีอาการคันเดียวกันฉันก็ทำความสะอาดมันเพื่อให้คนอื่นที่ไม่ใช่ฉันสามารถทำให้มันทำงานได้จริงและจบรายการที่ต้องทำของฉัน รหัสนี้ใช้งานได้แล้ว: https://github.com/mwh/dragon

ที่จะได้รับมันทำงาน

git clone https://github.com/mwh/dragon.git
cd dragon
make

ซึ่งจะให้dragonไฟล์ปฏิบัติการแบบสแตนด์อโลน- คุณสามารถเคลื่อนย้ายได้ทุกที่ที่คุณต้องการ จะนำมาใส่ในmake install$HOME/.local/bin

ไม่ว่าจะด้วยวิธีใดคุณสามารถ:

dragon *.jpg

เพื่อให้ได้หน้าต่างที่เรียบง่ายพร้อมปุ่มที่ลากได้สำหรับแต่ละไฟล์:

สกรีนช็อตของ dragon แสดงไฟล์สองสามไฟล์

คุณสามารถลากสิ่งเหล่านี้ลงในเบราว์เซอร์ตัวจัดการไฟล์ตัวแก้ไขหรืออื่นใดก็ได้ที่พูดถึงโปรโตคอลการลากและวางแบบมาตรฐาน

หากคุณต้องการที่จะไปทางอื่นและสิ่งที่ลากในไปใช้--target- พวกเขาจะถูกพิมพ์ออกมาตรฐานหรือพร้อมที่จะลากออกมาอีกครั้งกับถ้าคุณใช้--keepเช่นกัน


เพื่อสร้างคุณจะต้องคอมไพเลอร์ C และส่วนหัวพัฒนา GTK + 3 - ถ้าคุณอยู่ใน Arch คุณจะได้รับผู้ที่เพิ่งโดยการติดตั้ง GTK + แต่ในการกระจายอื่น ๆ ที่คุณอาจจะต้องapt-get install build-essentials libgtk3-devหรือyum install gtk3-develหรือคล้ายกันครั้งแรก นอกเหนือจากนั้นมันมีอยู่ในตัวเองทั้งหมดโดยไม่มีไลบรารีที่เป็นส่วนประกอบหรืออะไรเลยและคุณสามารถใส่ไฟล์ปฏิบัติการได้ตามที่คุณต้องการ

กรณีการใช้งานของฉันส่วนใหญ่เป็นแบบลากครั้งเดียวของไฟล์เพียงไม่กี่ไฟล์ (โดยปกติจะเป็นเพียงไฟล์เดียว) โดยไม่สนใจว่าไฟล์จะแสดงเป็นอย่างไรถ้านั่นไม่ตรงกับสิ่งที่คุณต้องการแล้ว Dragbox (ซึ่งฉันไม่เห็นจนกระทั่ง เมื่อเร็ว ๆ นี้) อาจยังดีกว่าสำหรับคุณ เมื่อวานนี้ฉันได้เพิ่มการสนับสนุนเพื่อใช้เป็นเป้าหมายการลากด้วยเช่นกันดังนั้นส่วนนั้นก็ไม่ได้มีประโยชน์อะไรมากมายในตอนท้าย นอกเหนือจากนั้นฉันได้ใช้มันสำเร็จมาระยะหนึ่งแล้ว มีโหมดและตัวเลือกอื่น ๆ ที่อธิบายไว้ในไฟล์ readme


ขอขอบคุณ! ใช้เวลาไม่กี่วินาทีในการสร้าง / ติดตั้ง! ฉันจะใช้มัน! ตัวเลือก - เป้าหมายคือการระเบิด!

Nice ไบนารีขนาดเล็กแบบสแตนด์อโลน ด้วย Makefile ขนาดเล็กที่ดี สมบูรณ์ ขอขอบคุณ!
กล่อง

1
คุณเป็นฮีโร่ เครื่องมือนี้ยังมีอยู่บน AUR dragon-drag-and-drop-gitภายใต้ชื่อ
FichteFoll

ฉันรักคุณ! ชุมชน Arch รัก U! ขอขอบคุณ! ฉันค้นหาสิ่งนี้มานานแล้ว
yukashima huksay

28

ขอบคุณ @derobert สำหรับการแนะนำแอปพลิเคชั่น Dragbox ให้ฉัน

Dragboxทำสิ่งที่ฉันต้องการ ตัวอย่างเช่นฉันมีโฟลเดอร์ที่มีไฟล์. png หลายไฟล์ที่ฉันต้องการลากไปยัง Chromium ภายในโฟลเดอร์นั้นการดำเนินการdragbox *.pngสร้างหน้าต่างนี้:

หน้าต่าง GUI ที่มีชื่อไฟล์หลายรายการ

ฉันสามารถใช้เมาส์ลากไฟล์จากที่นั่นไปยัง Chromium และทำงานได้อย่างไม่มีที่ติ อย่างไรก็ตามการได้มาถึงจุดนี้เป็นความเจ็บปวด เท่าที่ฉันทราบ Dragbox สนับสนุนระบบ Debian อย่างเป็นทางการเท่านั้น ฉันไม่พบที่ใดก็ได้ที่ใช้งานได้กับ Arch ดังนั้นฉันได้เขียนคำแนะนำทีละขั้นตอนเพื่อให้ Dragbox ทำงานใน Arch Linux นี่เป็นสิ่งที่ฉันทำในเครื่องของฉันเกือบทั้งหมดโดยมีการดัดแปลงสองสามอย่างเพื่อให้เป็นไปตามแนวทางปฏิบัติที่ดี หากมีข้อผิดพลาดอยู่ที่ไหนสักแห่งที่คุณสามารถดูในประวัติการแก้ไขของคำตอบนี้จะเห็นว่าสิ่งที่ฉันได้ในเครื่องของฉัน

  1. โคลนแหล่งที่มา Dragbox ไปยังคอมพิวเตอร์ของคุณโดยการดำเนินการ git clone https://github.com/engla/dragbox.git
  2. จะมีไดเรกทอรีใหม่ที่เรียกว่าdragboxสร้างขึ้นภายในไดเรกทอรีการทำงานปัจจุบันของคุณ เข้าไปข้างใน
  3. การติดตั้ง Dragbox และ Dragbox ต้องการ Python 2 ซึ่งมาพร้อมกับมาตรฐานบน Arch Linux อย่างไรก็ตามมันคาดว่า Python 2 จะเป็นการติดตั้ง Python เริ่มต้นซึ่งไม่เป็นความจริงใน Arch export PYTHON=/bin/python2รับรอบนี้โดยการดำเนินการ จนกว่าคุณจะปิดหน้าต่าง terminal ปัจจุบันของคุณตัวแปรสภาพแวดล้อมจะมีค่า$PYTHON /bin/python2สคริปต์การติดตั้งของ Dragbox ตรวจสอบสิ่งนั้นและจะใช้งานผ่าน Python 3
  4. ดำเนินการ./autogen.sh, ./configure, และmake จะต้องทำด้วยสิทธิ์พิเศษ (เช่น)make installmake installsudo make install
  5. Dragbox ได้รับการติดตั้งบนคอมพิวเตอร์ของคุณแล้ว แต่กำลังจะลองใช้ Python 3 เพื่อเรียกใช้ ด้วยสิทธิ์พิเศษของรูทให้เปิด/usr/local/bin/dragboxในโปรแกรมแก้ไขข้อความ แก้ไข shebang (เส้นแรกที่บอกว่าเปลือกของคุณสิ่งที่ปฏิบัติการเรียกใช้สคริปต์ด้วย) จากการ#!/usr/bin/env python#!/usr/bin/env python2
  6. สคริปต์กำลังทำงานอยู่ แต่ไม่พบโมดูลที่มีโปรแกรมจริง มีสองวิธีที่คุณสามารถแก้ไขได้

    1. รวมใน~/.bashrcบรรทัดของคุณหรือคล้ายกันอ่านexport PYTHONPATH=$PYTHONPATH:ทันที (ใน, ไม่เว้นแม้แต่ระหว่าง) ตามเส้นทางของฉันไปยังไดเรกทอรี Python จะค้นหาในไดเรกทอรีนั้นเมื่อพยายามนำเข้าโมดูล ภายในไดเรกทอรีที่สร้างขึ้นในขั้นตอนที่ 1 จะมีไดเรกทอรีที่เรียกว่าDropbox/(ด้วยตัวพิมพ์ใหญ่ D) คัดลอกไดเรกทอรีนั้นไปยังไดเรกทอรีที่คุณเพิ่มไว้$PYTHONPATH(เช่นถ้าคุณเขียนexport PYTHONPATH=$PYTHONPATH:~/python/modulesให้คัดลอกDragbox/ไดเรกทอรีเพื่อสร้าง~/python/modules/Dragbox/)

    2. อาจจะเลวร้ายยิ่งการปฏิบัติ $PYTHONPATHแต่คุณสามารถคัดลอกไดเรกทอรีเดียวกันไปยังไดเรกทอรีแล้วในของคุณ /usr/lib/python2.7/site-packages/ตัวอย่างเช่นคุณสามารถคัดลอกเพื่อสร้าง

หากคุณทำตามขั้นตอนเหล่านี้แล้ว Dragbox ควรจะใช้งานได้! ตอนนี้คุณสามารถดำเนินการที่จะเรียนรู้เพิ่มเติมเกี่ยวกับวิธีการใช้งานและเปิดใช้งานโดยเพียงแค่พิมพ์man dragboxdragbox


2
จริงๆแล้วการใช้/usr/bin/env python2เป็นวิธีที่แนะนำในทุกวันนี้เนื่องจากPEP 394ได้รับการรับรอง
Gilles 'หยุดความชั่วร้าย'

1
คุณไม่จำเป็นต้องแก้ไขที่สอง เพียงคัดลอกDragboxไดเรกทอรีไปไว้ที่PYTHONPATHอื่น (เช่นในpython2 site-packagesทั้งระบบหรือต่อผู้ใช้) บรรทัดนั้นจะทำงานเมื่อdragboxไม่สามารถนำเข้าแพ็คเกจนั้นได้
Bakuriu

@ เซทขอบคุณฉันเดา ฉันสร้างสคริปต์ python ทำงานบนระบบที่แตกต่างออกไปเล็กน้อยจากที่ได้รับการออกแบบมาซึ่งยังคงมี python อยู่: P ฉันดีใจที่เป็น python แม้ว่าเนื่องจากเป็นภาษาเดียวที่ฉันพูดได้คล่องพอที่จะทำสิ่งนี้ เกิดขึ้น
undergroundmonorail

2
ด้วย ArchLinux วิธีการแก้ปัญหาที่แท้จริงสำหรับประเภทของสิ่งนี้คือการ wrtie PKGBUILD คุณทำสิ่งที่คุณทำเป็นส่วนใหญ่ แต่คุณใส่ไว้ในสคริปต์พิเศษที่อนุญาตให้pacmanจัดการไฟล์ให้คุณดังนั้นคุณไม่จำเป็นต้องเข้าไปยุ่งเกี่ยวกับระบบหากคุณต้องการอัปเดตหรือลบมัน
HalosGhost

1
Dragbox ดูเหมือนว่าจะตาย git-repo หายไปแล้ว
kaleissin

6

คุณสามารถนำทางระบบไฟล์ภายในเบราว์เซอร์ของคุณโดยใช้ไวยากรณ์:

file:///home/username/blah/blah

เปิดพา ธ ในแท็บที่ว่างแล้วคุณสามารถลากและวางไฟล์ได้ อย่างน้อยด้วย chrome / chromium ไม่มีเบราว์เซอร์อื่นที่นี่ให้ลอง


นี่ใช้งานไม่ได้สำหรับฉัน แต่ฉันไม่สามารถบอกได้ว่ามันเป็นปัญหากับวิธีที่คุณอธิบายหรือมีปัญหากับ userscript ที่ต้องการให้ฉันปล่อยของใน ...
undergroundmonorail

ฉันคิดว่ามีสวิตช์บรรทัดคำสั่งหรือคุณลักษณะภายใน chrome ที่คุณต้องเปิดใช้งานเพื่ออนุญาต
slm

จะchrome://flagsเป็นสถานที่ที่เหมาะสมสำหรับการค้นหาสิ่งนี้หรือไม่ นั่นคือสิ่งที่ฉันดูในขณะนี้
undergroundmonorail

@undergroundmonorail mmm คุณพูดถูกฉันเพิ่งลองใช้ตัวอย่างที่dropzonejs.comและมันไม่ทำงาน อาจเป็นปัญหาการอนุญาตอย่างชัดเจนแม้ว่า
Shunz


4

เพิ่งแก้ไขปัญหาด้วยตัวเอง

อาจเป็นวิธีที่ง่ายที่สุดคือใช้กล่องโต้ตอบ "เปิดไฟล์ ... " คุณสามารถลากและวางจากกล่องโต้ตอบไฟล์ gtk เช่นเดียวกับตัวจัดการไฟล์

คุณอาจต้องเปิดหน้าต่างแยกต่างหากเพื่อให้แน่ใจว่ากล่องโต้ตอบไม่ได้ขโมยหน้าจอ

แค่นั้นแหละ. ง่ายมาก


! น่ากลัว ไม่จำเป็นต้องติดตั้งอะไรเลย ฉันใช้ Firefox ดังนั้นฉันจึงไม่สามารถคลิกเมนูได้ แต่ Ctrl + o ใช้งานได้ดี
Milan Babuškov
โดยการใช้ไซต์ของเรา หมายความว่าคุณได้อ่านและทำความเข้าใจนโยบายคุกกี้และนโยบายความเป็นส่วนตัวของเราแล้ว
Licensed under cc by-sa 3.0 with attribution required.