精华内容
下载资源
问答
  • 但是体验相对你这个项目来说还是差点,...希望您可以把OLAINDEX中的微软API去掉然后做成一个本地项目,不知道这样是否可行?</h1><p>该提问来源于开源项目:WangNingkai/OLAINDEX</p></div>
  • 全文共1171字,预计学习时长6...这是一种非常简单但功能强大,可上传文件至云端储存(Amazon S3、谷歌云存储或微软Azure存储)的方式。Active Storage还提供用于本地部署和测试的磁盘服务,它能够将文件附加到Act...

    全文共1171字,预计学习时长6分钟

    如何在Rails项目上使用Active Storage上传图片?

    图源:unsplash

     

    想在Rails项目里上传图片吗?你来对地方了!下文将简要介绍什么是Active Storage,如何进行安装以及如何使用它在Rails项目里上传图片。

     

    Active Storage

     

    什么是Active Storage?这是一种非常简单但功能强大,可上传文件至云端储存(Amazon S3、谷歌云存储或微软Azure存储)的方式。Active Storage还提供用于本地部署和测试的磁盘服务,它能够将文件附加到Active Record(领域模型),而无需在模型表中创建另一列。

     

    Active Storage通过附件连接模型使用多态关联,然后连接到Blob模型(该模型存储附件元数据,如文件名、内容类型等以及它们的标识符密匙),这两个模型都是由Active Record支持的内置模型。

     

    安装

     

    来看看如何在应用中安装Active Storage。首先,把rails active_storage:install安装到命令行/控制台并处于应用程序文件夹内:

     

    如何在Rails项目上使用Active Storage上传图片?

     

    这将在db/migrate文件夹中创建一个新的迁移。然后,运行 rails db:migrate,将这些新表格迁移到模式文件中。迁移到模式文件中的两个表格分别是active_storage_attachments 和active_storage_blobs。

     

    如何在Rails项目上使用Active Storage上传图片?

    Active Storage表格迁移

     

    安装模型

     

    创建迁移之后,下一步是找到与图片相关的模型文件。对于我的电影评论应用来说,我希望用户能够上传电影海报的图片,所以我需要的是电影模型。

     

    如何在Rails项目上使用Active Storage上传图片?

    app/model/movie.rb

     

    使用 has_one_attached可将单个图片附加到模型,也可使用 has_many_attached附加多个图像。下面示例来自Active Storage README.md:

     

    如何在Rails项目上使用Active Storage上传图片?

     

    安装控制器

     

    模型定义完成以后,下一步就是模型控制器。在参数定义中,需要添加:image属性作为允许的参数。下面这个例子来自movie_controller.rb文件:

     

    如何在Rails项目上使用Active Storage上传图片?

    app/controllers/movie_controller.rb

     

    建立视图

     

    模型和控制器都已经安装,是时候安装表单字段了,它能让用户上传图片。完成上述操作,需在erb文件中使用form.file_field。下面是 _form.html.erb文件用于电影评论应用的示例:

     

    如何在Rails项目上使用Active Storage上传图片?

    app/views/movies/_form.html.erb

     

    如何在Rails项目上使用Active Storage上传图片?

    new movie form page

     

    然后使用 image_tag 助手,就可以在视图文件中显示图像了。下面是该应用索引页的示例:

     

    如何在Rails项目上使用Active Storage上传图片?

     

    app/views/movies/show.html.erb

     

    如何在Rails项目上使用Active Storage上传图片?

    show page example

     

    如何调整图像大小

     

    有人会问:“图片后面的.variant(resize: “500 x 500”)是什么?”Active Storage允许使用ImageProcessing::MiniMagick模块进行图像转换,该模块与image_processing gem一起安装。使用这个gem,要做的就是取消Gemfile中image_processing gem的注释。

     

    如何在Rails项目上使用Active Storage上传图片?

    image_processing gem in Gemfile

     

    现在,使用image_processing gem提供的所有方法可将图像从原始大小转换为适合应用程序的大小。

     

    再看一个例子:

     

    如何在Rails项目上使用Active Storage上传图片?

     

    app/viws/movies/index.html.erb

     

    如何在Rails项目上使用Active Storage上传图片?

    index page example

     

    所以我们要通过Active Storage将图片上传至rails项目总共分几步呢?

     

    · 运行rails active_storage:install

    · 运行rails db/migrate

    · 模式:使用符号调用has_one_attached方法,它将成为每个模型实例的属性(在示例中,我们使用:image作为符号,不过命名随意)

    · 控制器: 把图像属性作为允许参数

    · 视图: 在表单中添加一个file_field,并使用image_tag 显示上传的图像

     

    希望你有机会在项目中利用本文的方法尝试一下!

     

    如何在Rails项目上使用Active Storage上传图片?

    起分享AI学习与发展的干货

    欢迎关注全平台AI垂类自媒体 “读芯术”

    (添加小编微信:dxsxbb,加入读者圈,一起讨论最新鲜的人工智能科技哦~)

    展开全文
  • IE浏览器6.0以上的版本中,win7系统要上传图片的的话是比较麻烦的,因为微软公司在win7操作系统下有些权限设置,这需要用户自己去修改权限的!具体步骤: 1、运行IE,点击“工具”菜单—“Internet选项”: 2、...

    IE浏览器6.0以上的版本中,win7系统要上传图片的的话是比较麻烦的,因为微软公司在win7操作系统下有些权限设置,这需要用户自己去修改权限的!具体步骤:

    1、运行IE,点击“工具”菜单—“Internet选项”:

    2、选择“Internet”,点击“自定义级别”按钮:

    3、弹出的安全设置对话框中的“二进制和脚本行为”选择“启用”:

    4、“将文件上载到服务器时包含本地目录路径”选择“启用”:

    最后点击下面的“确定”按钮

    展开全文
  • 我另外写了一个从本地文件读取并上传进行识别的例子。官方文档,请参考 https://docs.azure.cn/zh-cn/cognitive-services/emotion/quickstarts/javascript第一种方式,使用远程的图片文件<!DOCTYPE h...


    这是今天在黑客松现场写的代码。我们的项目需要调用认知服务的情感识别接口。官方提供了一种方式,就是从一个远程图片进行识别。我另外写了一个从本地文件读取并上传进行识别的例子。


    官方文档,请参考 https://docs.azure.cn/zh-cn/cognitive-services/emotion/quickstarts/javascript


    第一种方式,使用远程的图片文件

    <!DOCTYPE html>
    <html>
    <head>
         <title></title>

        <script src="Scripts/jquery-3.2.1.min.js"></script>
         <script type="text/javascript">
             $(function () {
                 $("#test").click(function () {
                     var params = {
                         // Request parameters
                     };
                     $.ajax({
                         url: "https://api.cognitive.azure.cn/emotion/v1.0/recognize" + $.param(params),
                         beforeSend: function (xhrObj) {
                             // Request headers
                             xhrObj.setRequestHeader("Content-Type", "application/json");

                            // NOTE: Replace the "Ocp-Apim-Subscription-Key" value with a valid subscription key.
                             xhrObj.setRequestHeader("Ocp-Apim-Subscription-Key", "换成你的key");
                         },
                         type: "POST",
                         // Request body
                         data: '{"url": "https://tse3.mm.bing.net/th?id=OIP.4M-jZG7HnQUpUKJ0wowq7QDrEs&pid=1.7"}',
                     })
                         .done(function (data) {
                             console.log(data)
                         })
                         .fail(function () {
                             alert("error");
                         });
                 });
             });</script>
    </head>
    <body>
         <button id="test">测试</button>
    </body>
    </html>


    第二种方式,直接使用本地文件,读取二进制上传


    <!DOCTYPE html>
    <html lang="en">
    <head>
         <meta charset="utf-8">
         <title>File Emotion detecting</title>

        <link rel="stylesheet" href="style.css">
    </head>
    <body>
         <div id="page-wrapper">

            <h1>Text File Reader</h1>
             <div>
                 Select a text file:
                 <input type="file" id="fileInput">
             </div>
             <pre id="fileDisplayArea"></pre>

        </div>
         <script src="Scripts/jquery-3.2.1.min.js"></script>
         <script>
             window.onload = function () {
                 var fileInput = document.getElementById('fileInput');
                 var fileDisplayArea = document.getElementById('fileDisplayArea');

                fileInput.addEventListener('change', function (e) {
                     // Put the rest of the demo code here.
                     var file = fileInput.files[0];
                     var textType = /image.*/;
                     if (file.type.match(textType)) {
                         var reader = new FileReader();

                        reader.onload = function (e) {
                             fileDisplayArea.innerText = reader.result;

                            var params = {
                                 // Request parameters
                             };

                            $.ajax({
                                 url: "https://api.cognitive.azure.cn/emotion/v1.0/recognize?" + $.param(params),
                                 beforeSend: function (xhrObj) {
                                     xhrObj.setRequestHeader("Content-Type", "application/octet-stream");
                                     xhrObj.setRequestHeader("Ocp-Apim-Subscription-Key", "换成你的key");
                                 },
                                 type: "POST",
                                 data: reader.result,
                                 processData: false
                             })
                                 .done(function (data) {
                                     alert("success");
                                 })
                                 .fail(function () {
                                     alert("error");
                                 });
                         }

                        reader.readAsArrayBuffer(file);
                     }
                     else {
                         fileDisplayArea.innerText = "File not supported!";
                     }
                 });
             }
         </script>
    </body>
    </html>

    转载于:https://www.cnblogs.com/chenxizhang/p/8046542.html

    展开全文
  • 以下是将一个本地旧仓库上传到Github的基本过程。 1. 首先注册Github帐号 然后点击Github页面右上角的➕,然后选择New repository创建一个私有仓库 2. 输入仓库名称。 本例设置仓库名称为tes...

    微软收购Github以后,于当地时间2019年1月7日宣布Github私有仓库免费,但每个私有仓库的协作者不能超过3人。我们可以愉快地把自己的个人项目放在Github上了。以下是将一个本地旧仓库上传到Github的基本过程。

    1. 首先注册Github帐号

    然后点击Github页面右上角的➕,然后选择New repository创建一个私有仓库
    在这里插入图片描述

    2. 输入仓库名称。

    本例中仓库名称为test,然后选择Private,点击下方绿色的Create repository。既然我们是推送旧仓库,就不要选择Initialize this repository with a README
    在这里插入图片描述
    后面的步骤其实都写在创建成功以后返回的页面上,此时你已经有了这个仓库的https和ssh链接:https://github.com/simonliu009/test.git / git@github.com:simonliu009/test.git
    `
    在这里插入图片描述

    3. 设置https buffer

    如果你使用https链接,那么建议先设置https的buffer
    git config http.postBuffer 524288000
    即修改提交缓存大小为500M(每个仓库都需要如此操作)。
    否则上传较大项目很容易出现如下错误信息:
    fatal: the remote end hung up unexpectedly

    4. 上传

    如下操作过程中应该会弹出github登录对话框,使用github账号登录即可。

    • 4.1 如果你是在一个文件夹新建仓库,那么类似如下操作:
    echo "# test" >> README.md
    git init
    git add README.md
    git commit -m "first commit"
    git remote add origin https://github.com/simonliu009/test.git
    git push -u origin master
    //如果要推送所有分支
    git push --all origin
    
    • 4.2 如果你需要上传一个旧仓库,那么需要在仓库目录下:
    git remote add origin https://github.com/simonliu009/test.git
    git push -u origin master
    //如果要推送所有分支
    git push --all origin
    

    以后再次更新只需要提交commit以后git push即可。

    5. 常见问题

    如果你不小心选择了Initialize this repository with a README选项。那么运行
    git remote add origin https://github.com/simonliu009/test.git
    可能会提示
    fatal: remote origin already exists.

    所以最好是运行
    git remote set-url origin https://github.com/simonliu009/test.git

    因为远程仓库此时已经有一个新的README.md,所以如果你此时直接运行推送命令:
    git push -u origin master
    可能会提示

     ! [rejected]        master -> master (fetch first)
    error: failed to push some refs to 'https://github.com/simonliu009/test.git
    
    hint: Updates were rejected because the remote contains work that you do
    hint: not have locally. This is usually caused by another repository pushing
    hint: to the same ref. You may want to first integrate the remote changes
    hint: (e.g., 'git pull ...') before pushing again.
    hint: See the 'Note about fast-forwards' in 'git push --help' for details.
    

    所以需要先把远程的仓库合并到本地,但是现在如果你直接git pull可能会提示:

    fatal: refusing to merge unrelated histories

    所以你应该这样:
    git pull origin master --allow-unrelated-histories
    然后git add ., 做一次提交:git commit,然后再运行

    git push -u origin master 以推送master分支。
    或者
    git push --all origin 以推送所有分支

    6. 推送到多个远程仓库

    有的时候我们需要把一个项目推送到多个远程仓库作为备份。假设我们已经在按照上文的方法设置了一个远程主机,别名是origin,如果还需要推送到别的远程仓库有如下两种方法:

    • 6.1 所有远程仓库使用相同的别名origin,假设第二个远程仓库主机是码云,我们的推送目标仓库地址为https://gitee.com/simonliu009/test.git
      那么应该使用git remote set-url --add origin设置
    git remote set-url --add origin https://gitee.com/simonliu009/test.git
    

    此时git remote -v即可以看到所有的远程仓库

    $ git remote -v
    origin  https://github.com/simonliu009/test.git (fetch)
    origin  https://github.com/simonliu009/test.git (push)
    origin  https://gitee.com/simonliu009/test.git (push)
    

    以后如果要推送所有分支到所有远程仓库,只需要输入
    git push --all origin
    即可。

    • 6.2 远程仓库使用不同的别名,比如使用gitee作为码云的远程仓库别名:
      那么应该使用git remote add设置
      git remote add gitee https://gitee.com/simonliu009/test.git
      git remote -v即可以查看所有的远程仓库
    $ git remote -v
    gitee	https://gitee.com/simonliu009/test.git (fetch)
    gitee	https://gitee.com/simonliu009/test.git (push)
    origin	https://github.com/simonliu009/test.git (fetch)
    origin	https://github.com/simonliu009/test.git (push)
    

    那么推送到两个远程仓库则需要分别push两个别名:

    • 推送到github使用:
      git push --all origin

      git push推送当前分支
    • 推送到gitee使用:
      git push --all gitee

      git push gitee master 推送master 分支
    展开全文
  • 有时候我们在开发Metro App过程中,或开发完毕,我们的用户想要立即体验一下,这时,我们可以不通过微软的商店进行发布,而是通过本地安装就可以。 这里,我就跟大家分享一下,如何创建应用程序包和在本地安装程序。...
  • .Net开源之corefx、coreclr初探(一)

    千次阅读 2015-02-06 19:09:23
    2014年底微软印度籍CEO宣布了.Net跨平台开源计划,没想到他们的动作还很快,corefx和coreclr的代码已经上传到github了,对于.Net程序员来说绝对是一个福音。读读这些代码绝对是提升水平的有效途径。 Github上的项目...
  • WInInet 是微软对FTP HTTP 协议做封装库。通过WInInet 系列函数可以方便的实现基于HTTP FTP协议的文件上传下载。最近做了一个项目也是用到了WInInet实现HTTP协议的文件下载。...该函数实际上是对在缓存在本地的HT...
  • 在.net2.0出现奇怪的问题 ... 查看报错记录,看到项目 RewriteURL...最主要的是:在本地上是没有问题的,上传到服务器上就出现了. 通过查询一些资料得知,原来是一个微软一个bug,不过没有确定到是哪个补丁可以解决这个问...
  • 最近公司要上AD域项目,所有的用户全部从工作组环境切换到域环境,本地账号迁移到域账号。因客户端比较多,仔细研究了一下微软的加域和用户迁移工具,结合在网上搜到的一些脚本,自己编写了一个Windows Xp,Windows ...
  • 最近公司要上AD域项目,所有的用户全部从工作组环境切换到域环境,本地账号迁移到域账号。因客户端比较多,仔细研究了一下微软的加域和用户迁移工具,结合在网上搜到的一些脚本,自己编写了一个Windows Xp,Windows ...
  • 当初在64位下用微软的Js控件报错,也一直懒得修复就本地编译成dll了. 会Post重新修改下参数神马的就直接能用了,上传点东西赚点分...3分不贵了吧.! Ps:木有版权,随意修改.随意传播... 开发工具:Vs2010(打过Sp1补丁.) ...
  • 在做项目时,需要把文件上传到远程服务器,但打开远程连接时出现“发生身份验证错误,要求的函数不受支持”这个问题,百度找了下解决方法,一种时删除更新的补丁,一种是进入gpedit.msc,用微软官方建议修改本地组...
  • 原理:应用dsoframer插件在线编辑后保存至本地,然后上传到服务器并覆盖同名文件。 支持excel导入、导出、在线编辑、保存到服务器。 系统更新:http://www.chnetter.com     使用说明: 请根据自己虚拟...
  • 原理:应用dsoframer插件在线编辑后保存至本地,然后上传到服务器并覆盖同名文件。 支持excel导入、导出、在线编辑、保存到服务器。 系统更新:http://www.chnetter.com 使用说明: 请根据自己虚拟主机或VPS的...
  • IntelliJ的远程开发时通过FTP、SFTP(File Transfer Protocol,文件传输协议)实现,它们的远程开发的原理是通过文件传输协议连接到远程服务器,通过上传和下载的方式进行远程远程项目和本地项目的同步,这样的缺点是...
  • 第二方法就是下载到本地,然后上传安装。 Codestyling Localization插件的使用 感受Codestyling Localization插件的强大,还是要从使用开始的。 安装好后启用Codestyling Localization插件,我们很容易的能在工具...
  • 正式发布文件操作小程序,提供本地文件HTTP协议上传与下载、本地图像文件旋转与缩放、本地文件访问、本地程序运行等服务; 5、2020年12月12日发布Autodesk公司网页小程序,支持DWG等工程图在线编辑、查看及审阅等; ...
  • 上传文件:Bootstrap-fileinput 动态页签:Jerichotab(自己改造) 数据表格:easyUI-datagrid、Bootstrap-Talbe 对话框:layer-v2.3 下拉选择框:jQuery Select2(已用easyUI代替) 树结构控件:jQuery zTree、...
  • 正式发布文件操作小程序,提供本地文件HTTP协议上传与下载、本地图像文件旋转与缩放、本地文件访问、本地程序运行等服务; 5、2020年12月12日发布Autodesk公司网页小程序,支持DWG等工程图在线编辑、查看及审阅等; ...
  • asp.net知识库

    2015-06-18 08:45:45
    也论该不该在项目中使用存储过程代替SQL语句 如何使数据库中的表更有弹性,更易于扩展 存储过程——天使还是魔鬼 如何获取MSSQLServer,Oracel,Access中的数据字典信息 C#中利用GetOleDbSchemaTable获取数据库内表信息...
  • WP主题:HotNewspro 2.72

    2013-10-05 09:45:41
    使用主题集成的图片暗箱放大特效,插入图片时需注意:本地上传“链接 URL”应选择链接到“文件URL”,外链需将图像链接到图像,否则不会启用暗箱特效,不喜欢用这个特效,可以到主题设置中关闭。 WordPress 3.5版...

空空如也

空空如也

1 2
收藏数 39
精华内容 15
关键字:

本地项目上传微软