我能够从cfldap获取所需的所有值。 但是当我尝试更新用户图像时,我不知道如何发送二进制图像属性的正确值。如何使用cfldap更改用户图像?
我试图让从CFFILE图像变量上传
<cffile action="UPLOAD" filefield="file" destination="c:\inetpub\wwwroot\test" nameconflict="OVERWRITE" result="image" />
使用cfimage与静态图像也试过 -
<cfimage action="read" source="c:\inetpub\wwwroot\test\image.png" name="anotherImage">
甚至与
<cffile action="READBINARY" file="c:\inetpub\wwwroot\test\image.png" variable="BinaryImageContent">
但在任何如果我打电话给
<cfldap action="modify"
DN="#results.dn#"
attributes="thumbnailPhoto=#obj.image#"
modifytype="replace"
server="myserver"
username="mydomain\myuser"
password="mypass">
的#results.dn#是DN从我之前得到(一切好上)用户 我创造了#obj.image#,以便能够尝试所有类型的变量
而且尝试这些PARAMS:
<cfset obj.test1 = BinaryImageContent />
<cfdump var="#imageGetBlob(anotherImage)#" />
<cfdump var="#toString(obj.test1)#" />
顺便说一句,我得到它的
一个或多个所需的属性的错误可能丢失或不正确或 你做的不是H ave权限在服务器上执行此操作。
的问题是,我使用的域管理员帐户来更新
(此错误是解决 - 网络人员没有给我这个权限...现在我有它)。
现在我使用的是以下几点:
<cffile action="UPLOAD" filefield="file" destination="c:\inetpub\wwwroot\test" nameconflict="OVERWRITE" result="imagem" />
<cfset filename = "C:\inetpub\wwwroot\test\#imagem.serverFile#">
<cffile action="readbinary" file="#filename#" variable="img">
<cfset imgStr = BinaryEncode(img, "hex")>
<cfset imgStr2 = REReplace(imgStr, "..", "\\\0", "ALL")>
<cfldap
action="modify"
DN="#results.dn#"
attributes="thumbnailPhoto=#imgStr2#"
modifytype="replace"
server="myserver"
username="mydomain\myuser"
password="mypass"
>
,但我得到这个二进制代码
请告诉我奇怪的是,之前我有一个二进制代码像-1 -41和现在,没有什么类似的...
当我试图显示图片
我得到这个错误,因为它看起来像我发送一个数据到大值为 尝试执行修改时发生错误:[LDAP:错误代码19 - 00002082:AtrErr:DSID-03151314,# 1:0:00002082:,问题1005(CONSTRAINT_ATT_TYPE),数据0,Att 160023(thumbnailPhoto):len 466635]。 –
参见http://blog.cjwdev.co.uk/2010/11/03/the-thumbnailphoto-attribute-explained/。 “thumbnailPhoto”大小限制为100 Kb,建议大小为96 x 96像素。使用CF的照片编辑功能来制作一张真实的缩略图。同时比较[thumbnailPhoto'上的MSDN](https://msdn.microsoft.com/en-us/library/cc221395.aspx),尤其是'rangeUpper'部分。 – Tomalak
所以,实际上网络伙计骗我,管理员用户有权更改ldap帐户...现在它已经和我没有收到错误,我没有权限... 无论如何,我收到奇怪的二进制,当我这样做...将更新我的问题与数据和图像 –