【问题标题】:drag and drop from url to input file从 url 拖放到输入文件
【发布时间】:2018-06-08 23:38:10
【问题描述】:

我正在使用 django 开发一个新闻网站,我在其中管理有关文章的数据 我有 id、content、title、category 和 image 这是一个 FileField

class Article(models.Model):

    id=models.AutoField(primary_key=True)
    title=models.CharField(max_length=100,null=False,blank=False)
    category=models.ForeignKey(Category,null=False,blank=False)
    date=models.DateTimeField(auto_now_add=True)
    content = models.TextField(null=False, blank=False)
    resume=models.CharField(null=False,blank=False,max_length=400)
    image = models.FileField(verbose_name=blank=True)

我创建了一个添加表单,其中包含有关文章的数据

表单包含一个输入文件

<input type="file" name="image">

表单正在正确提交数据并且图像已成功存储。 但是我注意到此输入仅适用于本地图像。 仅当我从计算机中手动选择图像或将其拖动到输入时才有效。

如果我将图像从网站拖到输入端,它将不起作用。

我想知道是否有可以用来将图像从另一个网站拖动到文件输入的解决方案,因为每次我需要提交图像时都需要下载它。

任何帮助将不胜感激

【问题讨论】:

    标签: html file upload drag-and-drop


    【解决方案1】:

    您需要获取图片的 url 并使用urllib2 下载它 这是一个如何使用 javascript 获取 url 的简单示例

    $(document).on('dragover', function(e) {e.preventDefault();return false;});
        $(document).on('drop', function(e) {
            e.preventDefault();
            e.originalEvent.dataTransfer.items[0].getAsString(function(url){
                alert(url);
        });
    });
    

    这里是你如何下载它并在你的模块中使用它

    from urllib.parse import urlparse
    import requests
    from django.core.files.base import ContentFile
    from myapp.models import Photo
    
    img_url = "url" #request.POST["url"] for example
    name = urlparse(img_url).path.split('/')[-1]
    
    photo = Article() # you need to use ImageFiled if it's just an image in your model
    
    response = requests.get(img_url)
    if response.status_code == 200:
        photo.image.save(name, ContentFile(response.content), save=True)
    

    【讨论】:

      猜你喜欢
      • 2014-02-05
      • 2017-07-09
      • 2011-12-21
      • 1970-01-01
      • 2014-04-06
      • 2016-12-29
      • 1970-01-01
      • 2013-03-27
      • 2018-02-17
      相关资源
      最近更新 更多