diff --git a/onionshare/__init__.py b/onionshare/__init__.py index a3474da9..78f754fc 100644 --- a/onionshare/__init__.py +++ b/onionshare/__init__.py @@ -68,7 +68,7 @@ def main(cwd=None): # Validation valid = True for filename in filenames: - if not os.path.exists(filename): + if not os.path.isfile(filename) and not os.path.isdir(filename): print(strings._("not_a_file").format(filename)) valid = False if not os.access(filename, os.R_OK): @@ -102,8 +102,12 @@ def main(cwd=None): # Prepare files to share print(strings._("preparing_files")) - web.set_file_info(filenames) - app.cleanup_filenames.append(web.zip_filename) + try: + web.set_file_info(filenames) + app.cleanup_filenames.append(web.zip_filename) + except OSError as e: + print(e.strerror) + sys.exit(1) # Warn about sending large files over Tor if web.zip_filesize >= 157286400: # 150mb diff --git a/onionshare_gui/__init__.py b/onionshare_gui/__init__.py index 83d03cc0..14c76617 100644 --- a/onionshare_gui/__init__.py +++ b/onionshare_gui/__init__.py @@ -91,7 +91,7 @@ def main(): if filenames: valid = True for filename in filenames: - if not os.path.exists(filename): + if not os.path.isfile(filename) and not os.path.isdir(filename): Alert(strings._("not_a_file", True).format(filename)) valid = False if not os.access(filename, os.R_OK): diff --git a/share/locale/en.json b/share/locale/en.json index 30e0c196..05873e26 100644 --- a/share/locale/en.json +++ b/share/locale/en.json @@ -8,7 +8,7 @@ "give_this_url": "Give this URL to the person you're sending the file to:", "give_this_url_stealth": "Give this URL and HidServAuth line to the person you're sending the file to:", "ctrlc_to_stop": "Press Ctrl-C to stop server", - "not_a_file": "{0:s} is not a file.", + "not_a_file": "{0:s} is not a valid file.", "not_a_readable_file": "{0:s} is not a readable file.", "no_available_port": "Could not start the Onion service as there was no available port.", "download_page_loaded": "Download page loaded",