如何在 R 中将图像上传到 SQL Server

Posted

技术标签:

【中文标题】如何在 R 中将图像上传到 SQL Server【英文标题】:How to upload an image to SQL Server in R 【发布时间】:2010-02-19 12:50:46 【问题描述】:

我正在创建一些要更新到数据库表中的图表。我遵循的程序是:

    将图表创建为 png/jpeg 文件。 将该文件作为二进制向量读取 sqlUpdate

我的第 2 步和第 3 步代码:

pngfile <- file(<filename>, "rb")
N <- 1e6
repeat
  pngfilecontents <- readBin(pngfile, what="raw", n=N)
  if(length(pngfilecontents) == N) N <- 5 * N else break

close(pngfile)

数据库中有一个表df_DemandPatternMaster,主键DemandPatternID,在pngFile字段中有相应的记录,值为NULL。

update.query <- "update df_DemandPatternMaster set "
update.query <- paste( update.query, " pngFile = '", serialize(pngfilecontents, NULL) , "' where DemandPatternID = ", , sep="")
d <- sqlQuery(connection, update.query)

我最终只插入了一个字节的数据。原因似乎是 paste 看到序列化的向量并创建一个带有前缀和后缀文本的向量。 我也试过直接传递png文件句柄

pngfile <- file(<filename>, "rb")
update.query <- paste( update.query, " pngFile = '", pngfile, "' where DemandPatternID = ", , sep="")

这也失败了。

请指教。

【问题讨论】:

密切相关的问题:***.com/questions/2045837/… 【参考方案1】:

也许如果你将 pngfilecontents 向量折叠成一个字符串。比如:

update.query <- "update df_DemandPatternMaster set "
update.query <- paste( update.query, " pngFile = '", paste(pngfilecontents, collapse="") , "' where DemandPatternID = ", sep="")

【讨论】:

谢谢马克。 paste(pngfilecontents, collapse="") 有效。我没有尝试 JD Long 的建议。 @Baan,不客气。如果可以,请通过单击左侧的复选标记将此答案标记为已接受。这清理了未回答的问题,我会很感激声誉点:)【参考方案2】:

我没有用数据库尝试过这个,但是最近在序列化到/从文本文件时遇到了一些挑战。这是question I asked that might be related。您是否尝试过将 ascii=T 开关与序列化一起使用?然后尝试使用和不使用 rawToChar。

我没有一个简单的环境来测试您的代码,但我对您的想法很感兴趣。我正在编写一些代码,我最终将序列化对象并将它们放入数据库中。我只是还没到那个地步。

【讨论】:

以上是关于如何在 R 中将图像上传到 SQL Server的主要内容,如果未能解决你的问题,请参考以下文章

如何在 django 中将图像添加到帖子中

如何在ios中将图像上传到服务器?

如何在 ASP.NET MVC 应用程序中将图像上传到 cloudinary?

如何在单个事务中将图像上传到 Firebase 存储并在数据库中保存参考?

Winforms:如何使用 C# 将图片上传到 SQL Server 数据库

如何在zend框架中将多个图像上传到数据库中