I want to download a file from the local directory when the user clicks on a particular link. How I can do it using python.
            Asked
            
        
        
            Active
            
        
            Viewed 928 times
        
    0
            
            
        - 
                    "when user clicks on perticular link it goes to correct location but file does not download" what does happen? what type of file? – atmd Feb 14 '19 at 04:06
- 
                    Possible duplicate of [starting file download with JavaScript](https://stackoverflow.com/questions/365777/starting-file-download-with-javascript) – atmd Feb 14 '19 at 04:07
- 
                    I have used whoosh library for indexing . I have around 900 files which are stored in static>datasets>documents directory. I get error as - The requested URL /static/documents/dataset/dynamic.ppt was not found on this server. – harsh Feb 14 '19 at 04:11
- 
                    so it doesn't go to the correct file, looks like you found the issue then – atmd Feb 14 '19 at 04:13
- 
                    The path I found is correct but it does not download. – harsh Feb 14 '19 at 04:14
- 
                    if you have the error "The requested URL /static/documents/dataset/dynamic.ppt was not found on this server." then how can the file path be correct? where is that error coming from? – atmd Feb 14 '19 at 04:17
- 
                    see my files are stored in this location - static/documents/dataset/dynamic.ppt and error is coming as The requested URL /static/documents/dataset/dynamic.ppt was not found. if you observe here both path are same. – harsh Feb 14 '19 at 04:18
- 
                    its unclear what your asking, it certainly doesn't seem to be a javascript problem – atmd Feb 14 '19 at 04:24
3 Answers
0
            
            
        Try this on click of link:
location.replace('your_loacal_filepath')
For Example:
location.replace('/files/out.txt')
 
    
    
        Sneha S. Kamat
        
- 39
- 4
0
            
            
        if you are rendering HTML, then you should read about the HTML download Attribute
Quoting
The download attribute specifies that the target will be downloaded when a user clicks on the hyperlink.
This attribute is only used if the href attribute is set.
else if(currentobj.filename != null){
   var xy = '{% static "/documents/dataset/" %}' + currentobj.filename;
   alert(xy);
   var $tr = $('<tr><td style="padding:5px;"><a href="'+ xy +'" 
                 target="_blank" download>' + currentobj.filename.slice(0,25) + 
                 "....." +'</a></td> </tr>');
   $tbl.append($tr);
  }
just add download tag along the hyperlink
if you want to specify a specific name for the download file then just mention it like this
<a href="/images/myw3schoolsimage.jpg" download="w3logo">
 
    
    
        Dabees
        
- 494
- 4
- 14
- 
                    
- 
                    
- 
                    I m working on chatbot where I got multiple results when user click on perticular link it will be downloaded. I have two functions , first function I have given server link that will work . but it does not work for local directory . I got error as -The requested URL static/documents/dataset/dynamic.ppt was not found but file path is correct. – harsh Feb 14 '19 at 04:21
- 
                    did you try to substitute the link in the `href` tag with an online url to a file, instead of using local one ?? and see what happens ...like for example use this photo and see the errors that is going to appear `https://www.w3schools.com/images/myw3schoolsimage.jpg` – Dabees Feb 14 '19 at 04:25
- 
                    I have tried instead of local directory when I pass server url it works. – harsh Feb 14 '19 at 04:28
0
            
            
        You can try this. The download attribute instructs browsers to download a URL instead of navigating to it. Check out. https://developer.mozilla.org/en-US/docs/Web/HTML/Element/a#Attributes
 
    
    
        himank
        
- 439
- 3
- 5
