Ive installed the package, and it is just what ive been looking for. But when I try to upload something, it looks like it is uploading, and the app prompts me with an "Upload Comlete" message. But if I look in the media folder (via FTP) there isnt anything new in it. But if i look in the media folder in umbraco, it looks like all the files and folders are uploaded, exept there isnt any thumbnails, and the links to the images are dead.
Ive tried on to different servers, but what am I doing wrong? Permissions maybe? I can upload the regular way but right clicking and create new image.
Hmmm, it would seem like a permissions issue to me, I'd try making sure ASPNET, NETWORK SERVICE and IIS_IUSRS have modify access on the media folder. (I can never remember which one it is, but worth giving them all a try, then you can narrow it down).
Cheers
Matt
PS You may be able to check the servers error log to see if there is any further info in there?
Okay now im back. Now i have my own server...Windows Server 2003, running IIS 6 and .NET 4.Ive tried to add the MIMI thingy (dont know exactly what it does) to the IIS Manager. Ive sat full permission to the account: ASP.NET, IIS_WPG, SERVERNAME\IUSR_SERVERNAME, NETWORK SERVER, SYSTEM and Users for the media folder, and nothing works?!
I cant find the IIS_IUSRS on the list... hmmm ?!
It doesnt upload the file and doesnt make the folders in the media folder, but it do add the items to the media database.
If you are on your own server now, could you check both the servers event log, and also check the database table umbracoLog for anything related to DMU?
If you want to check those, and report back anything you find.
I'm experiencing exactly the same problem. I have umbraco 4.5 on Windows Server 2008.
Record from umbraco log:
iduserIdNodeIdDatestamplogHeaderlogComment
72010-12010-10-19 23:29:40.897ErrorSystem.UnauthorizedAccessException: Access to the path 'C:\inetpub\wwwroot\media\3556\' is denied. at System.IO.__Error.WinIOError(Int32 errorCode, String maybeFullPath) at System.IO.Directory.InternalCreateDirectory(String fullPath, String path, DirectorySecurity dirSecurity) at System.IO.Directory.CreateDirectory(String path, DirectorySecurity directorySecurity) at TheOutfield.UmbExt.DesktopMediaUploader.DesktopMediaUploaderHandler.ProcessUploadRequest(HttpContext context, XmlTextWriter xmlTextWriter)
C:\inetpub\wwwroot\media\3556\ - is wrong path. Umbraco web site is in another folder on disk D.
It seems like I've found root cause. Home directory for web site in IIS is "c:\inetpub\wwwroot\", but umbraco is in virtual folder of this web site with home directory on another disk.
Hmmm, interesting. I can't say I have ever run Umbraco in a virtual directory so that might be where my knowledge falls short.
But as (in your case at least) it's definatley a permissions issue, it should just be a case of finding the right user, and giving them the relevant permissions. Sorry I can't be more help to narrow it down, but it looks like you are going down the right path.
Let me know if you find any more info, as it'd be good to know.
I think this should be the the error in the umbraco log:
System.NullReferenceException: Object reference not set to an instance of an object. at TheOutfield.UmbExt.DesktopMediaUploader.UmbracoImageMediaFactory.SetImageMediaProperties(Media media, String file, Int32 fileWidth, Int32 fileHeight, Int32 bytes, String ext) at TheOutfield.UmbExt.DesktopMediaUploader.UmbracoImageMediaFactory.CreateMedia(Int32 parentNodeId, HttpPostedFile uploadFile) at TheOutfield.UmbExt.DesktopMediaUploader.DesktopMediaUploaderHandler.ProcessUploadRequest(HttpContext context, XmlTextWriter xmlTextWriter)
Realisticly the only thing that could possibly be null would be either the media item itself (which I can't see why it would if the media item is being created) or one of it's properties that is trying to be set.
Can you confirm you have a Media Type setup with the alias Image, with the properties umbracoFile, umbracoWidth, umbracoHeight, umbracoBytes and umbracoExtension (the default Image Media Type)
Also, can I ask what OS you are running the desktop air app on?
Spot on Matt... Apparently the now Umbraco build sets the property "umbracoExtensio" and not "umbracoExtension" to the image mediatype. Thank you so much Matt.. Really an awesome package :-)
Hmmmmmm, that is a weird one. i really can't think why you'd be able to create thumbnails, but not save the main image. Sounds like permissions are fine. Do you have anything in the event log that might suggest something?
System.Collections.Generic.KeyNotFoundException: The given key was not present in the dictionary. at System.ThrowHelper.ThrowKeyNotFoundException() at System.Collections.Generic.Dictionary`2.get_Item(TKey key) at umbraco.cms.businesslogic.datatype.controls.Factory.GetNewObject(Guid DataEditorId) in d:\TeamCity\buildAgent\work\7380c184e9fcd3ea\umbraco\cms\businesslogic\datatype\factory.cs:line 50 at umbraco.cms.businesslogic.datatype.controls.Factory.DataType(Guid DataTypeId) in d:\TeamCity\buildAgent\work\7380c184e9fcd3ea\umbraco\cms\businesslogic\datatype\factory.cs:line 40 at umbraco.cms.businesslogic.datatype.DataTypeDefinition.get_DataType() in d:\TeamCity\buildAgent\work\7380c184e9fcd3ea\umbraco\cms\businesslogic\datatype\DataType.cs:line 79 at umbraco.cms.businesslogic.datatype.DataTypeDefinition.GetByDataTypeId(Guid DataTypeId) in d:\TeamCity\buildAgent\work\7380c184e9fcd3ea\umbraco\cms\businesslogic\datatype\DataType.cs:line 239 at TheOutfield.UmbExt.DesktopMediaUploader.UmbracoImageMediaFactory.GenerateAdditionalThumbnails(Image image, Int32 fileWidth, Int32 fileHeight, String destFilePath) at TheOutfield.UmbExt.DesktopMediaUploader.UmbracoImageMediaFactory.CreateMedia(Int32 parentNodeId, HttpPostedFile uploadFile, User user) at TheOutfield.UmbExt.DesktopMediaUploader.DesktopMediaUploaderHandler.ProcessUploadRequest(HttpContext context, XmlTextWriter xmlTextWriter)
Are you using a custom defined upload data type? Or the one that comes pre-setup with umbraco? as it looks like it's not finding the data type definition for the upload field. It looks for this based upon a hardcoded control ID (5032a6e6-69e3-491d-bb28-cd31cd11086c). Can you check that your upload control has this value? (check the cmsDataType db table for an entry with that control ID, that is also linked to your media type)
Hmm, tracking it down to the Factory.GetNewObject method then, it would suggest it can't find a valid control. When the Factory is intialized (whenever you access a static method) it will search DLLs for data types which inherit IDataType and populate a _controls collection. You are getting a "key not found" exception because it seems to be unable to locate the relevant control.
I'd say try restarting app pool, check your permissions on the bin folder, and check you have the correct DLLs installed.
Also, does the upload control function correctly when you upload a file manualy in the media section?
That's probably just me forgetting to update the version number =)
Hmmm, I'm really struggling to suggest anything else to be honest. If you can upload manually and you have the relevant media types defined, I can't understand why it wouldn't work. It's definatley failing on finding that control though, I just can't think why that would be.
Hmmm, looks like I've managed to replicate it now, so I'll have to see if I can resolve it when I get home. I'll get an update out as soon as possible. Appologies for any inconvenience.
Kalle / Daniel, could you guys try dropping the following DLL into the bin folder and see if it resolves your issues? It fixed it on my version, so if it works for you guys, I'll release an update.
Kalle, I think I may have figured out what your issue is. Have you, by any chance, within your install, installed a package which contains a data type, setup a data type definition, then removed the package, therfore leaving an orphaned data type definition? I think the issue is, when the image media factory trys to create additional thumbs, it looks up the upload data type definition to get a list of sizes, which, to do this, it has to grab all data type defintions first and iterate over the collection. Now, if you have an orphaned data type definition, when it itterates over the collection, it won't be able to find the orphans render control, and so will fail, and will cause the rest of the DMU process to fail.
This is the only way I was able to replicate your situation (I happend to previously have Contour installed, which I uninstalled, but had left an orphaned data type defintion).
If this is the case, I'm not sure there is much I can do within DMU (in the updated dll i posted, I just do a try catch when I try to make additional thumbnails, so I'm actually not making additional thumbnails if it fails to find the Upload data type definition, though I think that's better than failing completley) as this is how the core works, and it's really down to the package you uninstalled to clean up after itself.
At the very minimum, you should be able to remove it from the DB yourself and fix the issue.
I hope this answers your (and hopefully Daniel's) problem.
Seems like its uploading, but it doesnt
Hi,
Ive installed the package, and it is just what ive been looking for. But when I try to upload something, it looks like it is uploading, and the app prompts me with an "Upload Comlete" message. But if I look in the media folder (via FTP) there isnt anything new in it. But if i look in the media folder in umbraco, it looks like all the files and folders are uploaded, exept there isnt any thumbnails, and the links to the images are dead.
Ive tried on to different servers, but what am I doing wrong? Permissions maybe? I can upload the regular way but right clicking and create new image.
Please help...
Peter
Hi Peter,
Hmmm, it would seem like a permissions issue to me, I'd try making sure ASPNET, NETWORK SERVICE and IIS_IUSRS have modify access on the media folder. (I can never remember which one it is, but worth giving them all a try, then you can narrow it down).
Cheers
Matt
PS You may be able to check the servers error log to see if there is any further info in there?
Okay... I'll try to contact my server admin... ill be back with more info :-)
Okay now im back. Now i have my own server...Windows Server 2003, running IIS 6 and .NET 4.Ive tried to add the MIMI thingy (dont know exactly what it does) to the IIS Manager. Ive sat full permission to the account: ASP.NET, IIS_WPG, SERVERNAME\IUSR_SERVERNAME, NETWORK SERVER, SYSTEM and Users for the media folder, and nothing works?!
I cant find the IIS_IUSRS on the list... hmmm ?!
It doesnt upload the file and doesnt make the folders in the media folder, but it do add the items to the media database.
And now i tried to add MIME type to the website, and to the virtual directory, and set full permission to both too.. but still no luck :-(
Hey Pedn,
If you are on your own server now, could you check both the servers event log, and also check the database table umbracoLog for anything related to DMU?
If you want to check those, and report back anything you find.
Cheers
Matt
Hi Matt,
I'm experiencing exactly the same problem. I have umbraco 4.5 on Windows Server 2008.
Record from umbraco log:
id userId NodeId Datestamp logHeader logComment
7201 0 -1 2010-10-19 23:29:40.897 Error System.UnauthorizedAccessException: Access to the path 'C:\inetpub\wwwroot\media\3556\' is denied. at System.IO.__Error.WinIOError(Int32 errorCode, String maybeFullPath) at System.IO.Directory.InternalCreateDirectory(String fullPath, String path, DirectorySecurity dirSecurity) at System.IO.Directory.CreateDirectory(String path, DirectorySecurity directorySecurity) at TheOutfield.UmbExt.DesktopMediaUploader.DesktopMediaUploaderHandler.ProcessUploadRequest(HttpContext context, XmlTextWriter xmlTextWriter)
C:\inetpub\wwwroot\media\3556\ - is wrong path. Umbraco web site is in another folder on disk D.
It seems like I've found root cause. Home directory for web site in IIS is "c:\inetpub\wwwroot\", but umbraco is in virtual folder of this web site with home directory on another disk.
Hmmm, interesting. I can't say I have ever run Umbraco in a virtual directory so that might be where my knowledge falls short.
But as (in your case at least) it's definatley a permissions issue, it should just be a case of finding the right user, and giving them the relevant permissions. Sorry I can't be more help to narrow it down, but it looks like you are going down the right path.
Let me know if you find any more info, as it'd be good to know.
Matt
I think this should be the the error in the umbraco log:
System.NullReferenceException: Object reference not set to an instance of an object.
at TheOutfield.UmbExt.DesktopMediaUploader.UmbracoImageMediaFactory.SetImageMediaProperties(Media media, String file, Int32 fileWidth, Int32 fileHeight, Int32 bytes, String ext)
at TheOutfield.UmbExt.DesktopMediaUploader.UmbracoImageMediaFactory.CreateMedia(Int32 parentNodeId, HttpPostedFile uploadFile)
at TheOutfield.UmbExt.DesktopMediaUploader.DesktopMediaUploaderHandler.ProcessUploadRequest(HttpContext context, XmlTextWriter xmlTextWriter)
Matt,
I was able to resolve problem in my case. Yes, I've added separate web site with umbraco being in the root folder and now Media Uploader works fine.
Regards,
Dzmitry
Hmmm, that's interesting.
Realisticly the only thing that could possibly be null would be either the media item itself (which I can't see why it would if the media item is being created) or one of it's properties that is trying to be set.
Can you confirm you have a Media Type setup with the alias Image, with the properties umbracoFile, umbracoWidth, umbracoHeight, umbracoBytes and umbracoExtension (the default Image Media Type)
Also, can I ask what OS you are running the desktop air app on?
Matt
Dzmitry
Glad you've gotten yours working.
Matt
It works :D
Spot on Matt... Apparently the now Umbraco build sets the property "umbracoExtensio" and not "umbracoExtension" to the image mediatype. Thank you so much Matt.. Really an awesome package :-)
/Peter
Sweeeeeet!
I'll store that one in my memory banks =)
Glad we were able to get this sorted.
Happy uploading
Matt
Hey, thanks for this thread!
Changing the Image property "umbracoExtensio" to "umbracoExtension" in the MediaType solved it for me
Great App Matt!
Gumbo
Hi there,
I have the same problem, but in my case it generates the thumbnail but does not save the image itself.
Any ideas?
//kalle
@Kalle,
Hmmmmmm, that is a weird one. i really can't think why you'd be able to create thumbnails, but not save the main image. Sounds like permissions are fine. Do you have anything in the event log that might suggest something?
Matt
Hi Matt,
This is what I get.
System.Collections.Generic.KeyNotFoundException: The given key was not present in the dictionary. at System.ThrowHelper.ThrowKeyNotFoundException() at System.Collections.Generic.Dictionary`2.get_Item(TKey key) at umbraco.cms.businesslogic.datatype.controls.Factory.GetNewObject(Guid DataEditorId) in d:\TeamCity\buildAgent\work\7380c184e9fcd3ea\umbraco\cms\businesslogic\datatype\factory.cs:line 50 at umbraco.cms.businesslogic.datatype.controls.Factory.DataType(Guid DataTypeId) in d:\TeamCity\buildAgent\work\7380c184e9fcd3ea\umbraco\cms\businesslogic\datatype\factory.cs:line 40 at umbraco.cms.businesslogic.datatype.DataTypeDefinition.get_DataType() in d:\TeamCity\buildAgent\work\7380c184e9fcd3ea\umbraco\cms\businesslogic\datatype\DataType.cs:line 79 at umbraco.cms.businesslogic.datatype.DataTypeDefinition.GetByDataTypeId(Guid DataTypeId) in d:\TeamCity\buildAgent\work\7380c184e9fcd3ea\umbraco\cms\businesslogic\datatype\DataType.cs:line 239 at TheOutfield.UmbExt.DesktopMediaUploader.UmbracoImageMediaFactory.GenerateAdditionalThumbnails(Image image, Int32 fileWidth, Int32 fileHeight, String destFilePath) at TheOutfield.UmbExt.DesktopMediaUploader.UmbracoImageMediaFactory.CreateMedia(Int32 parentNodeId, HttpPostedFile uploadFile, User user) at TheOutfield.UmbExt.DesktopMediaUploader.DesktopMediaUploaderHandler.ProcessUploadRequest(HttpContext context, XmlTextWriter xmlTextWriter)
Hi Kalle,
Are you using a custom defined upload data type? Or the one that comes pre-setup with umbraco? as it looks like it's not finding the data type definition for the upload field. It looks for this based upon a hardcoded control ID (5032a6e6-69e3-491d-bb28-cd31cd11086c). Can you check that your upload control has this value? (check the cmsDataType db table for an entry with that control ID, that is also linked to your media type)
Cheers
Matt
It should be the one installed with Umbraco from the start.
The cmsDataType db table has an entry with that ID, its an Nvarchar.
//Kalle
Hmm, tracking it down to the Factory.GetNewObject method then, it would suggest it can't find a valid control. When the Factory is intialized (whenever you access a static method) it will search DLLs for data types which inherit IDataType and populate a _controls collection. You are getting a "key not found" exception because it seems to be unable to locate the relevant control.
I'd say try restarting app pool, check your permissions on the bin folder, and check you have the correct DLLs installed.
Also, does the upload control function correctly when you upload a file manualy in the media section?
Let me know how you get on.
Cheers
Matt
I have the right permissions, and I can upload it manually.
If i check the version of the DLL, it says version 2.0.0. Eventhough I just downloaded it from OUR.
//kalle
Hi Kalle,
That's probably just me forgetting to update the version number =)
Hmmm, I'm really struggling to suggest anything else to be honest. If you can upload manually and you have the relevant media types defined, I can't understand why it wouldn't work. It's definatley failing on finding that control though, I just can't think why that would be.
Matt
I'm getting the same issue... files upload and I get a thumbnail, but no file found when I click the thumbnail.
What gives?
Hmmm, looks like I've managed to replicate it now, so I'll have to see if I can resolve it when I get home. I'll get an update out as soon as possible. Appologies for any inconvenience.
Matt
Kalle / Daniel, could you guys try dropping the following DLL into the bin folder and see if it resolves your issues? It fixed it on my version, so if it works for you guys, I'll release an update.
http://dl.dropbox.com/u/138129/TheOutfield.UmbExt.DesktopMediaUploader.dll.zip
Matt
Kalle, I think I may have figured out what your issue is. Have you, by any chance, within your install, installed a package which contains a data type, setup a data type definition, then removed the package, therfore leaving an orphaned data type definition? I think the issue is, when the image media factory trys to create additional thumbs, it looks up the upload data type definition to get a list of sizes, which, to do this, it has to grab all data type defintions first and iterate over the collection. Now, if you have an orphaned data type definition, when it itterates over the collection, it won't be able to find the orphans render control, and so will fail, and will cause the rest of the DMU process to fail.
This is the only way I was able to replicate your situation (I happend to previously have Contour installed, which I uninstalled, but had left an orphaned data type defintion).
If this is the case, I'm not sure there is much I can do within DMU (in the updated dll i posted, I just do a try catch when I try to make additional thumbnails, so I'm actually not making additional thumbnails if it fails to find the Upload data type definition, though I think that's better than failing completley) as this is how the core works, and it's really down to the package you uninstalled to clean up after itself.
At the very minimum, you should be able to remove it from the DB yourself and fix the issue.
I hope this answers your (and hopefully Daniel's) problem.
Many thanks
Matt
Hello Mat,
Sorry for the late response.
I will have a look at this next week. I will get back to you.
//kalle
is working on a reply...