I'm have permission level with perms for list "Add List Items" and "View Items" but then i'm try add new file with Windows explorer i get Access Denied error. And if set "Edit item" in permission level it work fine but i can edit files. How can i make only add permission without edit ?
IMHO this will not be possible by using only custom permissions.
I can think of few possible workarounds but they all requires some 'coding':
Option 1 You can build custom Event receiver with sole purpose to disable item editing. It is very simple code but still it is code (you need to deploy it properly so you need Visual Studio and basic knowledge of SP solution developing)
Event cancellation enables you to cancel an event receiver operation in a Before event prior to the conclusion of the action. For example, we can write some code in the ItemAdding event receiver that cancels the action of adding the item. So when the user tries to add an item, the operation is cancelled and the item is not added to the list. When the operation is cancelled, be sure to show the user an error message or provide a custom error message by redirecting the user to a specific URL.
Only downside is that edit form will be available but saving changes will be disabled (not a very user friendly approach).
Option 2 You can have temporary library and custom workflow developed by SharePoint Designer. After you upload document to temp library workflow will move it to another library with proper permissions.
Option 3... You can always build custom workflow in VS or you can even use Event receiver to handle document move by code.
You can create a custom permission level
I was having a similar problem. I have ticked the 'View Application Pages' box as part of the bespoke permission level. This allows users to see the upload form which seems to have done the trick.